21,對於任意一個4位的二進製數,我們都可以很快算出它對應的10進製值。
下麵列出四位二進製數xxxx所有可能的值(中間略過部分)
僅4位的2進製數快速計算方法十進製值十六進值
1111=8+4+2+1=15F
1110=8+4+2+0=14E
1101=8+4+0+1=13D
1100=8+4+0+0=12C
1011=8+0+2+1=11B
1010=8+0+2+0=10A
1001=8+0+0+1=99
....
0001=0+0+0+1=11
0000=0+0+0+0=00
二進製數要轉換為十六進製,就是以4位一段,分別轉換為十六進製。
如(上行為二製數,下麵為對應的十六進製):
11111101,10100101,10011011
FD,A5,9B
反過來,當我們看到FD時,如何迅速將它轉換為二進製數呢?
先轉換F:
看到F,我們需知道它是15(可能你還不熟悉A~F這五個數),然後15如何用8421湊呢?應該是8+4+2+1,所以四位全為1:1111。
接著轉換D
看到D,知道它是13,13如何用8421湊呢?應該是:8+4+1,即:1101。
所以,FD轉換為二進製數,為:11111101
由於十六進製轉換成二進製相當直接,所以,我們需要將一個十進製數轉換成2進製數時,也可以先轉換成16進製,然後再轉換成2進製。
比如,十進製數1234轉換成二製數,如果要一直除以2,直接得到2進製數,需要計算較多次數。所以我們可以先除以16,得到16進製數:
被除數計算過程商餘數
12341234\/16772
7777\/16413(D)
44\/1604
結果16進製為:0x4D2
然後我們可直接寫出0x4D2的二進製形式:010011010010。
其中對映關係為:
0100--4
1101--D
0010--2
同樣,如果一個二進製數很長,我們需要將它轉換成10進製數時,除了前麵學過的方法是,我們還可以先將這個二進製轉換成16進製,然後再轉換為10進製。
下麵舉例一個int類型的二進製數:
01101101111001011010111100011011
我們按四位一組轉換為16進製:6DE5AF1B
本章節來源於𝑜𝑜𝑝.𝑡𝑤
原碼、反碼、補碼
結束了各種進製的轉換,我們來談談另一個話題:原碼、反碼、補碼。
我們已經知道計算機中,所有數據最終都是使用二進製數表達。
我們也已經學會如何將一個10進製數如何轉換為二進製數。
不過,我們仍然沒有學習一個負數如何用二進製表達。
比如,假設有一int類型的數,值為5,那麼,我們知道它在計算機中表示為:
00000000000000000000000000000101
5轉換成二製是101,不過int類型的數占用4字節(32位),所以前麵填了一堆0。
現在想知道,-5在計算機中如何表示?
在計算機中,負數以其正值的補碼形式表達。
。起說碼反,碼原從得這?呢碼補叫麼什
。碼原為稱,數製進二的成換轉小大值對絕照按,數整個一:碼原
。碼原的5是10100000000000000000000000000000如比
。碼反的數製進二原為稱數製進二新的得所,反取位按數製進二將:碼反
)1變0;0變1(。1得,0為原;0得,1為原:指作操反取
。01011111111111111111111111111111得,反取位一每10100000000000000000000000000000將:如比
。碼反的10100000000000000000000000000000是01011111111111111111111111111111:稱
:稱可也以所,的互相是碼反
。碼反為互10100000000000000000000000000000和01011111111111111111111111111111
。碼補為稱1加碼反:碼補
。碼補為稱數得所,1上加碼反將後然,碼反到得先,碼補的數個一到得要,說是就也
。01011111111111111111111111111111:是碼反的10100000000000000000000000000000:如比
:為碼補,麼那
11011111111111111111111111111111=1+01011111111111111111111111111111
。BFFFFFFFx0:製進六十為換轉。11011111111111111111111111111111:為達表中機算計在5-,以所
。示表何如中機算計在1-數整看來們我,例一舉再
:麼那,型類tni個一是也這設假
10000000000000000000000000000000:碼原的1取先、1
01111111111111111111111111111111:碼反得、2
11111111111111111111111111111111:碼補得、3
。FFFFFFFFx0:為製進61。1全是就達表製進二用裡機算計在1-,見可
。值製進61的量變個每到看以可們我,能功試調的redliuB++C用利。以可然當?呢看一看眼親能不能我,FFFFFFFFx0為達表裡機算計在1-說……的說上紙是都切一
值的量變看查試調過通
。值的量變察觀,試調過通,驗實的小小個一成完手動來們我麵下
運序程到看查以可,段手試調的供提BC過通們我後然。5-和5為化始初別分並,量變tni個兩明聲中碼代在們我