C/C++編程筆記:C語(yǔ)言進(jìn)制詳解,二進(jìn)制、八進(jìn)制和十六進(jìn)制!
我們平時(shí)使用的數(shù)字都是由 0~9 共十個(gè)數(shù)字組成的,例如 1、9、10、297、952 等,一個(gè)數(shù)字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多個(gè)數(shù)字組合起來。
例如表示 5+8 的結(jié)果,一個(gè)數(shù)字不夠,只能”進(jìn)位“,用 13 來表示;這時(shí)”進(jìn)一位“相當(dāng)于十,”進(jìn)兩位“相當(dāng)于二十。
因?yàn)榉晔M(jìn)一(滿十進(jìn)一),也因?yàn)橹挥?0~9 共十個(gè)數(shù)字,所以叫做十進(jìn)制(Decimalism)。十進(jìn)制是在人類社會(huì)發(fā)展過程中自然形成的,它符合人們的思維習(xí)慣,例如人類有十根手指,也有十根腳趾。

進(jìn)制也就是進(jìn)位制。進(jìn)行加法運(yùn)算時(shí)逢X進(jìn)一(滿X進(jìn)一),進(jìn)行減法運(yùn)算時(shí)借一當(dāng)X,這就是X進(jìn)制,這種進(jìn)制也就包含X個(gè)數(shù)字,基數(shù)為X。十進(jìn)制有 0~9 共10個(gè)數(shù)字,基數(shù)為10,在加減法運(yùn)算中,逢十進(jìn)一,借一當(dāng)十。
二進(jìn)制
我們不妨將思維拓展一下,既然可以用 0~9 共十個(gè)數(shù)字來表示數(shù)值,那么也可以用0、1兩個(gè)數(shù)字來表示數(shù)值,這就是二進(jìn)制(Binary)。例如,數(shù)字?0、1、10、111、100、1000001 都是有效的二進(jìn)制。
在計(jì)算機(jī)內(nèi)部,數(shù)據(jù)都是以二進(jìn)制的形式存儲(chǔ)的,二進(jìn)制是學(xué)習(xí)編程必須掌握的基礎(chǔ)。本節(jié)我們先講解二進(jìn)制的概念,下節(jié)講解數(shù)據(jù)在內(nèi)存中的存儲(chǔ),讓大家學(xué)以致用。
二進(jìn)制加減法和十進(jìn)制加減法的思想是類似的:
對(duì)于十進(jìn)制,進(jìn)行加法運(yùn)算時(shí)逢十進(jìn)一,進(jìn)行減法運(yùn)算時(shí)借一當(dāng)十;
對(duì)于二進(jìn)制,進(jìn)行加法運(yùn)算時(shí)逢二進(jìn)一,進(jìn)行減法運(yùn)算時(shí)借一當(dāng)二。
下面兩張示意圖詳細(xì)演示了二進(jìn)制加減法的運(yùn)算過程。
1) 二進(jìn)制加法:1+0=1、1+1=10、11+10=101、111+111=1110

2) 二進(jìn)制減法:1-0=1、10-1=1、101-11=10、1100-111=101

八進(jìn)制
除了二進(jìn)制,C語(yǔ)言還會(huì)使用到八進(jìn)制。
八進(jìn)制有 0~7 共8個(gè)數(shù)字,基數(shù)為8,加法運(yùn)算時(shí)逢八進(jìn)一,減法運(yùn)算時(shí)借一當(dāng)八。例如,數(shù)字 0、1、5、7、14、733、67001、25430 都是有效的八進(jìn)制。
下面兩張圖詳細(xì)演示了八進(jìn)制加減法的運(yùn)算過程。
1) 八進(jìn)制加法:3+4=7、5+6=13、75+42=137、2427+567=3216

2) 八進(jìn)制減法:6-4=2、52-27=23、307-141=146、7430-1451=5757

十六進(jìn)制
除了二進(jìn)制和八進(jìn)制,十六進(jìn)制也經(jīng)常使用,甚至比八進(jìn)制還要頻繁。
十六進(jìn)制中,用A來表示10,B表示11,C表示12,D表示13,E表示14,F(xiàn)表示15,因此有 0~F 共16個(gè)數(shù)字,基數(shù)為16,加法運(yùn)算時(shí)逢16進(jìn)1,減法運(yùn)算時(shí)借1當(dāng)16。例如,數(shù)字 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六進(jìn)制。
注意,十六進(jìn)制中的字母不區(qū)分大小寫,ABCDEF 也可以寫作 abcdef。
下面兩張圖詳細(xì)演示了十六進(jìn)制加減法的運(yùn)算過程。
1) 十六進(jìn)制加法:6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11

2) 十六進(jìn)制減法:D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF

圖5:十六進(jìn)制減法示意圖
希望對(duì)你有幫助!

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來成長(zhǎng)!
另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~