數制的轉換

2021-07-26 23:04:55 字數 1627 閱讀 1052

一、十進位制轉換成二進位制

方法:  整數部分「除以2取餘數,反序排列」;

小數部分「乘2取整數,正序排列」。

補充:  有的十進位制小數不能用二進位制小數精確地表示出來,即上述乘法過程永遠不能到達小數部分為0而結束,這時根據精度要求取夠一定位數的二進位制數即可。

對於既有整數部分又有小數部分的十進位制的轉換,可以將兩部分的轉換分開進行,最後再將結果合併在一起即可。

【例】將十進位制小數0.625轉換成二進位制數。

用乘2取整法,轉換過程如下:

0.625*2=1.25                 取整數 1(最高位)

0.25*2=0.5                   取整數 0

0.5*2=1.0                    取整數 1(最低位)

即0.625 = 0.101b.

二、二進位制數、八進位制數、十六進製制數轉換為十進位制數

方法:  「按權相加」

【例1】

(1111.11)2 = 1*23 + 1*22 + 1*21 + 1*20 + 1*2-1 + 1*2-2 = 15.75

【例2】

(a10b.8)16 = 10*163 + 1*162 + 0*161 + 11*160 + 8*16-1 = 41227.5

三、二進位制數與八進位制數的相互轉換

1、二進位制數轉換為八進位制數

方法:  「三位按權相加合一位」

【例】將二進位制數11111101.101轉換成八進位制數。

011     111     101 . 101

3       7       5  .  5

轉換結果為11111101.101b = 375.5q

2、八進位制數轉換為二進位制數

方法:  「一位按權展開為三位」

【例】將八進位制數375.5轉換為二進位制數。

3     7     5 .   5

011   111   101 . 101

轉換結果為375.5q = 11111101.101b。

四、二進位制數與十六進製制數的相互轉換

1、二進位制數轉換為十六進製制數

方法:  「四位按權相加合一位」

【例】將二進位制數1110101.01轉換成十六進製制數。

0111     0101 . 0100

7        5  .   4

轉換結果為1110101.01b = 75.4h。

2、十六進製制數轉換為二進位制數

方法:  「一位按權展開為四位」

【例】將十六進製制數3a6.c5轉換成二進位制數。

3     a     6  .  c     5

0011  1010  0110 . 1100  0101

轉換結果為3a6.c5h = 1110100110.11000101b。

五、其他進製之間的轉換可以通過二進位製作為中間橋梁,即先將某一進製數轉換為二進位制數,再轉換為其他進製數。

數制的轉換

鏈棧實現數制的轉換 include using namespace std define ok 1 define error 0 define overflow 2 typedef int status define e 8 typedef struct snodesnode,linkstack s...

數制之間的轉換

數制間的轉換 學習指導 在本知識點主要學習各種數制表示形式之間的轉換方法,最基本的是十進位制與二進位制之間的轉變,八進位制和十六進製制可以借助二進位制來實現相應的轉換 轉換時要特別注意要分整數部分和小數部分分別進行轉換。同乙個數可採用不同的計數體制來表示,各種數制表示的數一定可以相互轉換。數制轉換 ...

shell 數制轉換

shell 指令碼預設數值是由10 進製數處理,除非這個數字某種特殊的標記法或字首開頭.才可以表示其它進製型別數值。如 以 0 開頭就是 8 進製.以0x 開頭就是16 進製數.使用 base number 這種形式可以表示其它進製.base值 2 64.使用方法 八進位制轉十進位制 charles...