天天看點

二進制轉十進制,十進制轉二進制的算法

二進制轉十進制,十進制轉二進制的算法

十進制轉二進制: 

用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.十六進制與二進制的轉換

例:将十六進制數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 

繼續閱讀