Python進製轉換

2021-09-26 13:29:36 字數 2706 閱讀 3529

進製轉換是人們利用符號來計數的方法。

進製轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。

基數是指,進製計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。

位權是指,進製中每一固定位置對應的單位值。

把二進位制三位一組分開就是八進位制, 四位一組就是十六進製制

二進位制與十進位制:

(1)二進位制轉十進位制:「按權展開求和」

(1011)2=1x23 + 0x22 + 1x21 + 1x20=(11)10

規律:個位上的數字的次數是0,十位上的數字的次數是1,…,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,…,依次遞減。

注意:不是任何乙個十進位制小數都能轉換成有限位的二進位制數。

(2)十進位制轉二進位制:「除以2取餘,逆序排列」(除二取餘法)

【例】:(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取整法)

【例】:(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進製

>> bin(10)

'0b1010'

#2進製轉為10進製

>> int("1001",2)

9

#10進製轉為16進製制

>> hex(10)

'0xa'

#16進製製到10進製

>> 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'

最後

Python 進製轉換

python 進製轉換 1 oct hex bin 允許把 整數轉換為其他進製的字串 例子 oct 64 hex 64 bin 64 0100 0x40 0b1000000 oct函式會將十進位制數轉換為八進位制數,hex函式會將十進位制數轉換為十六進製制數,而 bin函式會將十進位制轉換為二進位制...

Python 進製轉換

python手擼實現十進位制轉16 8 2進製 class solution object def init self pass def convert self while true input num input 請輸入乙個整數 輸入q結束程式 if input num q return ten...

Python 進製轉換

print bin 4 輸出0b100 print format 4 輸出100print oct 8 輸出0o10 print format 8 輸出10print hex 15 輸出0xf print format 15 輸出f int 要轉換的字串 制定進製 print int 1010 2 ...