進制轉換是人們利用符號來計數的方法。 進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。 基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。 位權是指,進位制中每一固定位置對應的單位值。
把二進制三位一組分開就是八進制, 四位一組就是十六進制
(1)二進制轉十進制:「按權展開求和」python
(1011)2=1x2**3 + 0x2**2 + 1x2**1 + 1x2**0=(11)10 規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。 注意:不是任何一個十進制小數都能轉換成有限位的二進制數。
(2)十進制轉二進制:「除以2取餘,逆序排列」(除二取餘法)ide
【例】:(89)10=(1011001)2 89÷2 ……1 44÷2 ……0 22÷2 ……0 11÷2 ……1 5÷2 ……1 2÷2 ……0 1
十進制小數轉二進制數:「乘以2取整,順序排列」(乘2取整法) code
【例】:(0.625)10= (0.101)2 0.625X2=1.25 ……1 0.25X2=0.50 ……0 0.50 X2=1.00 ……1
二進制數轉換成八進制數:從小數點開始,整數部分向左、小數部分向右,每3位爲一組用一位八進制數的數字表示,不足3位的要用「0」補足3位,就獲得一個八進制數。 八進制數轉換成二進制數:把每個八進制數轉換成3位的二進制數,就獲得一個二進制數。 八進制數字與十進制數字對應關係以下: 000 -> 0 | 004-> 4 | 010=8 001 -> 1 |005 -> 5 | 011=9 002 -> 2 |006 -> 6 | 012=10 003 -> 3 |007 -> 7 | 013=11
【例】:將八進制的37.416轉換成二進制數: 3 7 . 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.0011)2 = (26.14)8
二進制數轉換成十六進制數:二進制數轉換成十六進制數時,只要從小數點位置開始,向左或向右每四位二進制劃分一組(不足四位數可補0),而後寫出每一組二進制數所對應的十六進制數碼便可。 十六進制數轉換成二進制數:把每個十六進制數轉換成4位的二進制數,就獲得一個二進制數。 十六進制數字與二進制數字的對應關係以下: 0000 -> 0 | 0100 -> 4 | 1000 -> 8 | 1100 -> C 0001 -> 1 | 0101 -> 5 | 1001 -> 9 | 1101 -> D 0010 -> 2 | 0110 -> 6 | 1010 -> A | 1110 -> E 0011 -> 3 | 0111 -> 7 | 1011 -> B | 1111 -> F
【例】:將十六進制數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
2進制是以0b開頭的: 例如: 0b11 則表示十進制的3 8進制是以0開頭的: 例如: 011則表示十進制的9 16進制是以0x開頭的: 例如: 0x11則表示十進制的17
#10進制轉爲2進制it
bin(10)
'0b1010'class
#2進制轉爲10進制二進制
int("1001",2)
9方法
#10進制轉爲16進制di
hex(10)
'0xa'view
#16進制到10進制vi
int("ff", 16)
255
int('0xab', 16)
171
#10進制轉爲8進制 兩種方式
>>> print ("%o" % 10) 12 >>> oct(8) '010'
#16進制到2進制
bin(0xa)
'0b1010'
#2進制到16進制
hex(0b1001)'0x9'