計算機數值進制轉換


數值轉換

二、八、十、十六進制的數碼:

二進制數碼:0,1

八進制數碼:0,1,2,3,4,5,6,7

十進制數碼:0,1,2,3,4,5,6,7,8,9

十六進制數碼:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

二進制的一位數計算       

   加法                  減法

  0+0=0                0-0=0

  0+1=1                1-0=1

  1+1=10               1-1=0

十進制轉二進制:

方法是用:除二取余法

例:9÷2=4----1,2 我們稱為商(取整),1 我們稱為余(余數)
 
除二取余法:依次除二求余直至最后為 0,然后從下向上依次寫下每次的余數組成新數
 
 
二進制的數碼:0 和 1,“逢二進一”。

二進制數的表示形式:方法一:(100001)2 方法二:100001B

二進制的權位:n 位上的數值代表是 2n-1,如二進制數 100001 到底是我們生活當中十進制的幾呢?
 
二進制轉換十進制:方法是按權位求和
 
    二進制數 100001=1*26-1+0*25-1+0*24-1+0*23-1+0*22-1+1*21-1=32+1=33(注:中間計算過程都是十進制)
 
 
 
 
十六進制數運算規律是逢十六進一,即基 R=16=2^4,通常在表示時用尾部標志 H 或 下標 16 以示區別。
 

二進制數與十六進制數之間的轉換:

由於 4 位二進制數恰好有 16 個組合狀態,即 1 位十六進制數與 4 位二進制數是一一對應的.十六進制數轉換成二進制數,
每四位一組只要將每一位十六進制數用對應的 4 位二進制數替代即可― ― 簡稱四位一分
 

二進制數轉換為十六進制數:

分別向左,向右每四位一組,依次寫出每組 4 位二進制數所對應 的十六進制數― ― 簡稱四位合一位
 
 
 

二進制數與八進制數之間的轉換:

二進制與八進制互轉和二進制轉十六進制相似只是每三位二進制轉成一位八進制,而一位八進制數轉換成三位二進制數
 
 
 
 

機器數與真值

在學習原碼, 反碼和補碼之前, 需要先了解機器數和真值的概念.
 
1. 機器數
 
一個數在計算機中的二進制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號,正數為0 , 負數為1
 
計算機字長為 8 位
例:十進制中的數 +3 ,轉換成二進制就是 00000011。
    如果是 -3 ,轉換成二進制就是就是10000011 。
    這里的 00000011 和 10000011 就是機器數。
2. 真值
 
因為第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數 10000011,其最高 位 1 代表負,其真正數值是 -3 而不是形式值 131(10000011 轉換成十進制等於 131)。所以,為區別
起見,將帶符號位的機器.數對應的真正數值稱為機器數的真值。
 
例:0000 0001 的真值 = +000 0001 = +1,1000 0001 的真值 = –000 0001 = –1
 
 

原碼、反碼及補碼

根據運算法則減去一個正數等於加上一個負數, 即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法, 這樣計算機運算的設計就更簡單了.
為了將符號位參與運算, 並且只保留加法,從而簡化計算機運算,發明了原碼、反碼和補碼。
 
原碼,反碼,補碼.都是有符號的用二進制表示數的方法,均由符號位和數值位構成 (正數的原碼反碼補碼都是其本身)
 
1. 原碼
 
原碼是符號位加上真值的絕對值, 即用第一位表示符號, 其余位表示值.
例:比如如果是 8 位二進制
[+1]原 = 0000 0001
[-1]原 = 1 第一位是符號位.余 000 0001下 7 位是數值位。 因為第一位是符號位, 所以 8 位二進制數的取值范圍就是:
[1111 1111 , 0111 1111]即[-127 , 127]
原碼是人腦最容易理解和計算的表示方式
 
2. 反碼
 
反碼的表示方法是:

正數的反碼是其本身.

負數的反碼是在其原碼的基礎上,符號位不變,其余各個位取反.

[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
 
可見如果一個反碼表示的是負數, 人腦無法直觀的看出來它的數值. 通常要將其轉換成原碼再計算.
 
3. 補碼
 
補碼的表示方法是:

正數的補碼就是其本身.

負數的補碼是在其原碼的基礎上,符號位不變,其余各位取反,最后+1.(即在反碼的基礎上+1).

[+1] = [00000001]原 = [00000001]反 = [00000001]補
[-1] = [10000001]原 = [11111110]反 = [11111111]補
 
對於負數, 補碼表示方式也是人腦無法直觀看出其數值的. 通常也需要轉換成原碼在計算其數值.
 
在計算機系統中,數值一律用補碼來表示(存儲)。主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄;補碼與原碼的轉換過程幾乎是相同的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM