二進制表示一般用原碼表示,計算加減時用補碼表示。
這里的二進制小數是用的定點數表示,不是用浮點數表示的。
0X01 二進制轉十進制
- 由二進制數轉換成十進制數的基本做法是,把二進制數首先寫成加權系數展開式,然后按十進制加法規則求和。這種做法稱為"按權相加"法。
例子:
[01101100]2=0×27+1×26+1×25+0×24+1×23+1×22+0×21+0×20=10810
[101.101]2=1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=5.625
注:這里的二進制小數是原碼表示的,使用的定點數表示,沒有用浮點數表示
0X02 十進制轉二進制
1.十進制整數轉二進制
十進制整數轉換為二進制整數采用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。
例子:求17310的二進制
2.十進制小數轉二進制
十進制小數轉換成二進制小數采用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘余下的小數 部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。
然后把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位。
例子:求0.812510的二進制
例子:173.812510=17310+0.812510=101011012(原)+0.11012(原)=10101101.11012(原)
-1.2510=10000001.012(原)
十進制小數轉換成二進制小數采用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘余下的小數部分,又 得到一個積,再將積的整數部分取出,如此進行,直到積中的整數部分為零,或者整數部分為1,此時0或1為二進制的最后一位。或者達到所要求的精度為止。
然后把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位。
十進制小數轉二進制
如:0.62510=0.1012
0.6252=1.25======取出整數部分1
0.252=0.5========取出整數部分0
0.5*2=1==========取出整數部分1
再如:0.710=0.1011001102
0.72=1.4========取出整數部分1
0.42=0.8========取出整數部分0
0.82=1.6========取出整數部分1
0.62=1.2========取出整數部分1
0.22=0.4========取出整數部分0
0.42=0.8========取出整數部分0
0.82=1.6========取出整數部分1
0.62=1.2========取出整數部分1
0.2*2=0.4========取出整數部分0