進制,看似很簡單的東西,但很多同學還是不能徹底理解。這里先簡單介紹一些注意事項,然后還是從實驗中講解會比較深刻。
1) 十進制就不多說了,逢十進位,一個位有十個值:0~9,我們的生活中到處都是它的身影。二進制就是逢二進位,它的一個位只有兩個值:0和1,但它卻是實現(xiàn)計算機系統(tǒng)的最基本的理論基礎,計算機(包括單片機)芯片是基于成萬上億個的開關管組合而成的,他們每一個都只能有開和關兩種狀態(tài),再難找出第三個狀態(tài)了(不要辯解半開半關這個狀態(tài),它是不穩(wěn)定態(tài),是極力避免的),所以他們只能對應于二進制的1和0兩個值,而沒有2、3、4......,理解二進制對于理解計算機的本質(zhì)很有幫助。書寫二進制數(shù)據(jù)時需加前綴 0b,每一位的值只能是0或1。十六進制就是把4個二進制位組合為一位來表示,于是它的每一位有 0b0000~0b1111 共16個值,用0~9再加上 A~F(或 a~f)表示,那么它自然就是逢十六進位了,它本質(zhì)上同二進制是一樣的,是二進制的一種縮寫形式,也是我們程序編寫中常用的形式。書寫十六進制數(shù)據(jù)時需加前綴0x,下表是三種進制之間的對應關系。
http://wiki.jikexueyuan.com/project/mcu-tutorial-one/images/44.png" alt="" />
2) 對于二進制來說, 8位二進制我們稱之為一個字節(jié),二進制的表達范圍值是從0b00000000 ~ 0b11111111,而我們在程序中用十六進制表示的時候就是從0x00到0xFF,這里教大家一個二進制轉(zhuǎn)換十進制和十六進制的方法,二進制4位一組,遵循8/4/2/1的規(guī)律比如 0b1010,那么從最高位開始算,數(shù)字大小是 81+40+21+10 = 10,那么十進制就是10,十六進制就是 0xA。尤其二進制轉(zhuǎn)十六進制的時候,十六進制一位剛好是和二進制的4位相對應的,這些大家不需要強行記憶,多用幾次自然就熟練了。
3) 對于進制來說,只是數(shù)據(jù)的表現(xiàn)形式,而數(shù)據(jù)的大小不會因為進制表現(xiàn)形式不同而不同,比如二進制的 0b1、十進制的1、十六進制的 0x01,他們本質(zhì)上是數(shù)值大小相等的同一個數(shù)據(jù)。我們在進行 C 語言編程的時候,我們只寫十進制和十六進制,那么不帶 0x 的就是十進制,帶了 0x 符號的就是十六進制。