二進位轉十進位,十進位轉二進位的演算法

二進位轉十進位,十進位轉二進位的演算法

十進位轉二進位: 
用2輾轉相除至結果為1 
將餘數和最後的1從下向上倒序寫 就是結果 
例如302 
302/2 = 151 餘0 
151/2 = 75 餘1 
75/2 = 37 餘1 
37/2 = 18 餘1 
18/2 = 9 餘0 
9/2 = 4 餘1 
4/2 = 2 餘0 
2/2 = 1 餘0 
故二進位為100101110

二進位轉十進位 
從最後一位開始算,依次列為第0、1、2...位 
第n位的數(0或1)乘以2的n次方 
得到的結果相加就是答案 
例如:01101011.轉十進位: 
第0位:1乘2的0次方=1 
1乘2的1次方=2 
0乘2的2次方=0 
1乘2的3次方=8 
0乘2的4次方=0 
1乘2的5次方=32 
1乘2的6次方=64 
0乘2的7次方=0 
然後:1+2+0 
+8+0+32+64+0=107. 
二進位01101011=十進位107.

一、二進位數字轉換成十進位數字 
由二進位數字轉換成十進位數字的基本做法是,把二進位數字首先寫成加權係數展開式,然後按十進位加法規則求和。這種做法稱為"按權相加"法。

二、十進位數字轉換為二進位數字 
十進位數字轉換為二進位數字時,由於整數和小數的轉換方法不同,所以先將十進位數字的整數部分和小數部分分別轉換後,再加以合併。 
1. 十進位整數轉換為二進位整數 
十進位整數轉換為二進位整數採用"除2取餘,逆序排列"法。具體做法是:用2去除十進位整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為零時為止,然後把先得到的餘數作為二進位數字的低位有效位,後得到的餘數作為二進位數字的高位有效位元,依次排列起來。

2.十進位小數轉換為二進位小數 
十進位小數轉換成二進位小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進位小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。 
然後把取出的整數部分按順序排列起來,先取的整數作為二進位小數的高位有效位元,後取的整數作為低位元有效位元。 
回答者:HackerKinsn - 試用期 一級 2-24 13:31

1.二進位與十進位的轉換 
(1)二進位轉十進位
方法:"按權展開求和" 
例: 
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10 
=(8+0+2+1+0+0.25)10 
=(11.25)10 
(2)十進位轉二進位

· 十進位整數轉二進位數字:"除以2取餘,逆序輸出" 
例: (89)10=(1011001)2 
2 89 
2 44 …… 1 
2 22 …… 0 
2 11 …… 0 
2 5 …… 1 
2 2 …… 1 
2 1 …… 0 
0 …… 1 
· 十進位小數轉二進位數字:"乘以2取整,順序輸出" 
例: 
(0.625)10= (0.101)2 
0.625 
X 2 
1.25 
X 2 
0.5 
X 2 
1.0 
2.八進制與二進位的轉換 
例:將八進制的37.416轉換成二進位數字: 
37 . 4 1 6 
011 111 .100 001 110 
即:(37.416)8 =(11111.10000111)2 
例:將二進位的10110.0011 轉換成八進制: 
0 1 0 1 1 0 . 0 0 1 1 0 0 
2 6 . 1 4 
即:(10110.011)2 =(26.14)8 
3.十六進位與二進位的轉換<BR>例:將十六進位數5DF.9 轉換成二進位: 
5 D F . 9 
0101 1101 1111.1001 
即:(5DF.9)16 =(10111011111.1001)2

例:將二進位數字1100001.111 轉換成十六進位: 
0110 0001 . 1110 
6 1 . E 
即:(1100001.111)2 =(61.E)16