看似很簡單的東西,但是從同學(xué)們學(xué)習(xí)視頻的情況來看,很多同學(xué)不能徹底明白。這里先簡單介紹一些注意事項(xiàng),然后還是從實(shí)驗(yàn)中講解會(huì)比較深刻。
1、十進(jìn)制就不多說了,逢十進(jìn)位,一個(gè)位有十個(gè)值:0~9,我們的生活中到處都是它的身影。二進(jìn)制就是逢二進(jìn)位,它的一個(gè)位只有兩個(gè)值:0和1,但它卻是實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的最基本的理論基礎(chǔ),計(jì)算機(jī)(包括單片機(jī))芯片是基于成萬上億個(gè)的開關(guān)管組合而成的,他們每一個(gè)都只能有開和關(guān)兩種狀態(tài),再難找出第三個(gè)狀態(tài)了(不要辯解半開半關(guān)這個(gè)狀態(tài),它是不穩(wěn)定態(tài),是極力避免的),所以他們只能對(duì)應(yīng)于二進(jìn)制的1和0兩個(gè)值,而沒有2、3、4……,理解二進(jìn)制對(duì)于理解計(jì)算機(jī)的本質(zhì)很有幫助。書寫二進(jìn)制數(shù)據(jù)時(shí)需加前綴0b,每一位的值只能是0或1。十六進(jìn)制就是把4個(gè)二進(jìn)制位組合為一位來表示,于是它的每一位有0b0000~0b1111共16個(gè)值,用0~9再加上a~f(或a~f)表示,那么它自然就是逢十六進(jìn)位了,它本質(zhì)上同二進(jìn)制是一樣的,是二進(jìn)制的一種縮寫形式,也是我們程序編寫中常用的形式。書寫十六進(jìn)制數(shù)據(jù)時(shí)需加前綴0x,下表是三種進(jìn)制之間的對(duì)應(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、對(duì)于二進(jìn)制來說,8位二進(jìn)制我們稱之為一個(gè)字節(jié),二進(jìn)制的表達(dá)范圍值是從0b00000000~0b11111111,而我們程序中用十六進(jìn)制表示的時(shí)候就是從0x00到0xff,這里教大家一個(gè)二進(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)制的時(shí)候,十六進(jìn)制一位剛好是和二進(jìn)制的4位相互對(duì)應(yīng)的,這些大家不需要強(qiáng)行記憶,用幾次就熟練了。
3、對(duì)于進(jìn)制來說,只是數(shù)據(jù)的表現(xiàn)形式,而數(shù)據(jù)的大小不會(huì)因?yàn)檫M(jìn)制表現(xiàn)形式不同而不同,比如二進(jìn)制的0b1、十進(jìn)制的1、十六進(jìn)制的0x01,他們本質(zhì)上數(shù)值大小相等的同一個(gè)數(shù)據(jù)。我們?cè)谶M(jìn)行c語言編程的時(shí)候,我們只寫十進(jìn)制和十六進(jìn)制,那么不帶0x的就是十進(jìn)制,帶了0x符號(hào)的就是十六進(jìn)制。