二進(jìn)制、十進(jìn)制和十六進(jìn)制
看似很簡單的東西,但是從同學(xué)們學(xué)習(xí)視頻的情況來看,很多同學(xué)不能徹底明白。這里先簡單介紹一些注意事項(xiàng),然后還是從實(shí)驗(yàn)中講解會比較深刻。
1、十進(jìn)制就不多說了,逢十進(jìn)位,一個位有十個值:0~9,我們的生活中到處都是它的身影。二進(jìn)制就是逢二進(jìn)位,它的一個位只有兩個值:0和1,但它卻是實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的最基本的理論基礎(chǔ),計(jì)算機(jī)(包括單片機(jī))芯片是基于成萬上億個的開關(guān)管組合而成的,他們每一個都只能有開和關(guān)兩種狀態(tài),再難找出第三個狀態(tài)了(不要辯解半開半關(guān)這個狀態(tài),它是不穩(wěn)定態(tài),是極力避免的),所以他們只能對應(yīng)于二進(jìn)制的1和0兩個值,而沒有2、3、4……,理解二進(jìn)制對于理解計(jì)算機(jī)的本質(zhì)很有幫助。書寫二進(jìn)制數(shù)據(jù)時需加前綴0b,每一位的值只能是0或1。十六進(jìn)制就是把4個二進(jìn)制位組合為一位來表示,于是它的每一位有0b0000~0b1111共16個值,用0~9再加上A~F(或a~f)表示,那么它自然就是逢十六進(jìn)位了,它本質(zhì)上同二進(jìn)制是一樣的,是二進(jìn)制的一種縮寫形式,也是我們程序編寫中常用的形式。書寫十六進(jìn)制數(shù)據(jù)時需加前綴0x,下表是三種進(jìn)制之間的對應(yīng)關(guān)系。
十進(jìn)制 | 二進(jìn)制 | 十六進(jìn)制 |
0 | 0b0 | 0x00 |
1 | 0b1 | 0x01 |
2 | 0b10 | 0x02 |
3 | 0b11 | 0x03 |
4 | 0b100 | 0x04 |
5 | 0b101 | 0x05 |
6 | 0b110 | 0x06 |
7 | 0b111 | 0x07 |
8 | 0b1000 | 0x08 |
9 | 0b1001 | 0x09 |
10 | 0b1010 | 0x0A |
11 | 0b1011 | 0x0B |
12 | 0b1100 | 0x0C |
13 | 0b1101 | 0x0D |
14 | 0b1110 | 0x0E |
15 | 0b1111 | 0x0F |
16 | 0b10000 | 0x10 |
17 | 0b10001 | 0x11 |
18 | 0b10010 | 0x12 |
…… | …… | …… |
表1 進(jìn)制轉(zhuǎn)換
2、對于二進(jìn)制來說,8位二進(jìn)制我們稱之為一個字節(jié),二進(jìn)制的表達(dá)范圍值是從0b00000000~0b11111111,而我們程序中用十六進(jìn)制表示的時候就是從0x00到0xFF,這里教大家一個二進(jìn)制轉(zhuǎn)換十進(jìn)制和十六進(jìn)制的方法,二進(jìn)制4位一組,遵循8,4,2,1的規(guī)律比如 1010,那么從最高位開始算,數(shù)字大小是8*1+4*0+2*1+1*0 = 10,那么十進(jìn)制就是10,十六進(jìn)制就是0xA。尤其二進(jìn)制轉(zhuǎn)十六進(jìn)制的時候,十六進(jìn)制一位剛好是和二進(jìn)制的4位相互對應(yīng)的,這些大家不需要強(qiáng)行記憶,用幾次就熟練了。
3、對于進(jìn)制來說,只是數(shù)據(jù)的表現(xiàn)形式,而數(shù)據(jù)的大小不會因?yàn)檫M(jìn)制表現(xiàn)形式不同而不同,比如二進(jìn)制的0b1、十進(jìn)制的1、十六進(jìn)制的0x01,他們本質(zhì)上數(shù)值大小相等的同一個數(shù)據(jù)。我們在進(jìn)行C語言編程的時候,我們只寫十進(jìn)制和十六進(jìn)制,那么不帶0x的就是十進(jìn)制,帶了0x符號的就是十六進(jìn)制。
編輯:admin 最后修改時間:2018-05-25