不同進制之間數字表示方法
- 默認的數字是10進制,如:23
- 以0開頭為8進制,如:045
- 以0b開頭為二進制 如:0b11101101
- 以0x開頭為十六進制,如:0x21458adf
10->2
正整數:
除二取余(直到商為0時止),倒序排列,高位補零。
如:45
45/2 = 22...1 = 11...0 =5...1=2...1=0...1=>101101=》00101101
負整數
正數二進,取反加一
如-45
00101101——--取反---11010010----加1--11010011
小數部份
X2取整,小數累乘再取整,直到滿足位數或小數部份為0為止。
如0.45f
0.45x2 = 0.9(0---0.9)x2=1.8(1--0.8)x2=1.6(1--0.6)x2=1.2(1--0.2)x2=0.4(0--0.4)x2 = 0.8(0-0.8)...
浮點數取23位,所以0.45=》0.01110011001100110011001
2->10
整數:
將二進制補足位數,首位是0表示正數,首位是1表示負數
首位是0,則將每位數x2^n求和,其中n為從右往左的下標。
如:101101
高位補零 = 00101101 =1*2^5+ 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 32+8+4+1 = 45
首位是1,則補位取反,再套用上面公式
如:11101011
取反:-00010100 = -10100 = -(12^4+12^2) = -20
小數部份
將小數的每一位x2^-n,再求和。
如:0.1101
= 0*2^0 + 1*2^-1 + 1*2^-2 + 0*2^-3 + 1*2^-4
=0+0.5+0.25+0.0625
=0.8125
16->2
首先記住下面的對應關系
進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
十六進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
二進制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
二進制轉換成十六進制的方法是,取四合一法,即從二進制的小數點為分界點,向左(或向右)每四位取成一位,如下圖
將對應的四位數轉位十六進制:
需要注意的是,在向左(或向右)取四位時,取到最高位(最低位)如果無法湊足四位,就可以在小數點的最左邊(或最右邊)補0,進行換算
ic6.png
上面是二進制轉十六進制,十六進制轉二進制反過來就行了