[計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制

老夫不正經發表於2020-03-16

計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制

計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制

一、什麼是進位制

在生活中,我們通常都是使用阿拉伯數字計數的,也就是10進位制,以10為單位,遇10進一,所以是由0,1,2、3、4、5、6、7、8、9組成的;而在計算機中,計算機是無法識別10進位制數的,它只能識別01程式碼,也就是二進位制,由0、1兩位數字組成,逢二進一

那麼什麼是進位制呢,進位制就是進位制,是人們規定的一種數字進位方法;對於任何一種進位制(X進位制),都表示某一位置上的數運算時是逢X進一位,如:二進位制就是逢二進一,八進位制就是逢八進一, 十進位制是逢十進一,十六進位制是逢十六進一,以此類推。

二、二進位制、八進位制、十進位制、十六進位制簡介

**二進位制:**由0,1組成,運算規律是逢二進一,計算機只能識別二進位制表示的資料;

**八進位制:**由0、1、2、3、4、5、6、7組成,運算規律是逢八進一;

**十進位制:**由0,1,2、3、4、5、6、7、8、9組成,運算規律是逢十進一;

**十六進位制:**由數字0~9以及字母A,B,C,D,E,F組成,運算規律是逢十六進一;

三、進位制轉換

以十進位制數13為例,實現各進位制數的轉換:

1. 十進位制和二進位制之間相互轉換:

十進位制--->二進位制:

對於整數部分,用被除數反覆除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的餘數。

另外,所得到的商的最後一位餘數是所求二進位制數的最高位。

圖1,十進位制轉二進位制

圖1,十進位制轉二進位制

二進位制--->十進位制:

進位制數第1位的權值是2的0次方,第2位的權值是2的1次方,第2位的權值是2的2次方,依次計算,公式:第N位 * 2的N-1次方,結果再相加便是最後結果。

圖2,二進位制轉十進位制

圖2,二進位制轉十進位制

2. 十進位制和八進位制之間轉換:

十進位制--->八進位制:

10進位制數轉換成8進位制的方法,和轉換為2進位制的方法類似,唯一變化:將圖1中的基數由2變成8,然後依次計算。

八進位制--->十進位制:

可參考圖2中二進位制的計算過程: 進位制數第1位的權值為8的0次方,第2位權值為8的1次方,第3位權值為8的2次方,依次計算,公式:第N位 * 8的N-1次方,結果再相加便是最後結果。

3. 十進位制和十六進位制之間轉換:

十進位制--->十六進位制:

10進位制數轉換成16進位制的方法,和轉換為2進位制的方法類似,唯一變化:將圖1中的基數由2變成16,然後依次計算。

十六進位制--->十進位制:

第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方,依次計算,公式:第N位 * 16的N-1次方,結果再相加便是最後結果。

4. 二進位制和八進位制之間轉換: 可先轉換為十進位制在轉換為二進位制或者八進位制

5. 二進位制和十六進位制之間轉換: 可先轉換為十進位制在轉換為二進位制或者十六進位制

6. 八進位制和十六進位制之間轉換: 可先轉換為十進位制在轉換為十六進位制或者八進位制

四、二進位制數字儲存單位

在計算機的二進位制數系統中,位簡記為bit,也稱為位元,是資料儲存的最小單位,每個二進位制數字0或1就是一個位(bit),也就是一位元;也可以把二進位制中的0和1看做開關中的“開”和“關”,1表示“開”,0表示“關”。

8 bit(位)= 1B,也就是一個位元組(Byte),然而1KB卻不等於1000B,下面是詳細的計算規則:

1B(byte,位元組)= 8 bit;

1KB(Kibibyte,千位元組)= 1024B = 2^10 B;

1MB(Mebibyte,兆位元組,百萬位元組,簡稱“兆”)= 1024KB = 2^20 B;

1GB(Gigabyte,吉位元組,十億位元組,又稱“千兆”)= 1024MB = 2^30 B;

1TB(Terabyte,萬億位元組,太位元組)= 1024GB = 2^40 B;

1PB(Petabyte,千萬億位元組,拍位元組)= 1024TB = 2^50 B;

以上這些是二進位制數的儲存單位計算規則,而在硬碟容量也能看到類似的單位,但是硬碟的容量通常是以十進位制標識的,所以顯示有500G容量的硬碟實際容量卻不足500G。

五、原碼、反碼和補碼

在計算機內,有符號數(這裡的符號指的是正負符號,有符號數指的就是正負數)有3種表示法:原碼、反碼和補碼,所有資料的運算都是採用補碼進行的:

1. 正數的原碼,反碼,補碼都相同;

2. 負數的有些不同,詳情如下:

**原碼:**根據二進位制定點表示法,二進位制最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。

**反碼:**負數的反碼是對其原碼逐位取反(0變1,1變0),但符號位除外。

**補碼:**負數的補碼是在其反碼的末位加1(逢二進一)。

需要注意的是:求反碼的時候,最高位(符號位)是不能被改變的, 正數的符號位是0,負數的符號位是1。

例子:分別求出5和-5的原碼、反碼和補碼

原碼、反碼和補碼 例項

原碼、反碼和補碼 例項

完結。老夫雖不正經,但老夫一身的才華

相關文章