一篇文章看懂二進制、八進制、十進制、十六進制數據轉換


進制轉換是人們利用符號來計數的方法。進制轉換由一組數碼符號和兩個基本因素“基數”與“位權”構成。

 

基數是指,進位計數制中所采用的數碼(數制中用來表示“量”的符號)的個數。

 

位權是指,進位制中每一固定位置對應的單位值。

 

進制也就是進制位,對於接觸過電腦的人來說應該都不陌生,我們常用的進制包括:二進制、八進制、十進制與十六進制,它們之間區別在於數運算時是逢幾進一位。比如二進制是逢2進一位,十進制也就是我們常用的0-9是逢10進一位。具體的用法小編今天不着重解釋,主要針對他們之間的轉換加以討論(今天只講整數)一、二進制與十進制之間的轉換

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

1、十進制轉二進制

 

方法為:十進制數除2取余法,即十進制數除2,余數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。

 

(具體用法如下圖)

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

2、二進制轉十進制

 

方法為:把二進制數按權展開、相加即得十進制數。

 

(具體用法如下圖)

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

二、二進制與八進制之間的轉換

 

1、二進制轉八進制

 

方法為:3位二進制數按權展開相加得到1位八進制數。(注意事項,3位二進制轉成八進制是從右到左開始轉換,不足時補0)。

 

(具體用法如下圖)

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

2、八進制轉二進制

 

方法為:八進制數通過除2取余法,得到二進制數,對每個八進制為3個二進制,不足時在最左邊補零。

 

三、二進制與十六進制之間的轉換

 

1、二進制轉十六進制

 

方法為:與二進制轉八進制方法近似,八進制是取三合一,十六進制是取四合一。(注意事項,4位二進制轉成十六進制是從右到左開始轉換,不足時補0)。

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

2、十六進制轉二進制

 

方法為:十六進制數通過除2取余法,得到二進制數,對每個十六進制為4個二進制,不足時在最左邊補零。

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

四、十進制與八進制與十六進制之間的轉換

 

1、十進制轉八進制或者十六進制有兩種方法

 

第一:間接法—把十進制轉成二進制,然后再由二進制轉成八進制或者十六進制。這里不再做圖片用法解釋。

 

第二:直接法—把十進制轉八進制或者十六進制按照除8或者16取余,直到商為0為止。

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

2、八進制或者十六進制轉成十進制

 

方法為:把八進制、十六進制數按權展開、相加即得十進制數。

 

一篇文章帶你看懂二進制、八進制、十進制、十六進制數據轉換

 

五、十六進制與八進制之間的轉換

 

八進制與十六進制之間的轉換有兩種方法

 

第一種:他們之間的轉換可以先轉成二進制然后再相互轉換。

 

第二種:他們之間的轉換可以先轉成十進制然后再相互轉換。

 

這里就不再進行圖片用法解釋。

 

六、負數

 

負數的進制轉換稍微有些不同。

 

先把負數寫為其補碼形式(在此不議),然后再根據二進制轉換其它進制的方法進行。

 

例:要求把-9轉換為八進制形式。則有:

 

-9的補碼為1111 1111 1111 0111。從后往前三位一划,不足三位的加0111---->7

 

110---->6

 

111---->7

 

111---->7

 

111---->7

 

001---->1

 

然后我們將結果按從下往上的順序書寫就是:177767,那么177767就是十進制數-9的八進制形式。

 

其實轉化成任意進制都是一樣的。

 

初學者最容易犯的錯誤!!!!!!!

 

犯錯:(-617)D=(-1151)O=(-269)H

 

原因分析:如果是正數的話,上面的思路是正確的,但是由於正數和負數在原碼、反碼、補碼轉換上的差別,所以按照正數的求解思路去對負數進行求解是不對的。

 

正確的方法是:首先將-617用補碼表示出來,然后再轉換成八進制和十六進制(補碼)即可。

 

注:二進制補碼要用16位。

 

正確答案::(-617)D=(176627)O=(fd97)H

 

負數十進制轉換成八進制或十六進制方法

 

如(-12)10=( )8=( )16

 

第一步:轉換成二進制

 

1000 0000 0000 1100

 

第二步:補碼,取反加一

 

注意:取反時符號位不變!

 

1111 1111 1111 0100

 

第三步:轉換成八進制是三位一結合:177764(8)轉換成十六進制是四位一結合:fff4(16)

 

七、小數

 

最近有些朋友提了這樣的問題“0.8的十六進制是多少?”

 

0.8、0.6、0.2… …一些數字在進制之間的轉化過程中確實存在麻煩。

 

就比如“0.8的十六進制”吧!

 

無論怎么乘以16,它的余數總也乘不盡,總是余0.8具體方法如下:

 

0.8*16=12.8

 

0.8*16=12.8

 

取每一個結果的整數部分為12既十六進制的C

 

如果題中要求精確到小數點后3位那結果就是0.CCC

 

如果題中要求精確到小數點后4位那結果就是0.CCCC現在OK了。


免責聲明!

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



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