我們平時使用的數字都是由 0~9 共十個數字組成的,例如 1、9、10、297、952 等,一個數字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多個數字組合起來。 例如表示 5+8 的結果,一個數字不夠,只能”進位“,用 13 來表示;這時”進一位“相當於十,”進兩位“相當於二十。 因為 ...
我們平時使用的數字都是由 0~9 共十個數字組成的,例如 1、9、10、297、952 等,一個數字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多個數字組合起來。
例如表示 5+8 的結果,一個數字不夠,只能”進位“,用 13 來表示;這時”進一位“相當於十,”進兩位“相當於二十。
因為逢十進一(滿十進一),也因為只有 0~9 共十個數字,所以叫做十進位(Decimalism)。十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。
進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
二進位
我們不妨將思維拓展一下,既然可以用 0~9 共十個數字來表示數值,那麼也可以用0、1兩個數字來表示數值,這就是二進位(Binary)。例如,數字 0、1、10、111、100、1000001 都是有效的二進位。
在電腦內部,數據都是以二進位的形式存儲的,二進位是學習編程必須掌握的基礎。本節我們先講解二進位的概念,下節講解數據在記憶體中的存儲,讓大家學以致用。
二進位加減法和十進位加減法的思想是類似的:
對於十進位,進行加法運算時逢十進一,進行減法運算時借一當十;
對於二進位,進行加法運算時逢二進一,進行減法運算時借一當二。
下麵兩張示意圖詳細演示了二進位加減法的運算過程。
1) 二進位加法:1+0=1、1+1=10、11+10=101、111+111=1110
2) 二進位減法:1-0=1、10-1=1、101-11=10、1100-111=101
八進位
除了二進位,C語言還會使用到八進位。
八進位有 0~7 共8個數字,基數為8,加法運算時逢八進一,減法運算時借一當八。例如,數字 0、1、5、7、14、733、67001、25430 都是有效的八進位。
下麵兩張圖詳細演示了八進位加減法的運算過程。
1) 八進位加法:3+4=7、5+6=13、75+42=137、2427+567=3216
2) 八進位減法:6-4=2、52-27=23、307-141=146、7430-1451=5757
十六進位
除了二進位和八進位,十六進位也經常使用,甚至比八進位還要頻繁。
十六進位中,用A來表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16個數字,基數為16,加法運算時逢16進1,減法運算時借1當16。例如,數字 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六進位。
註意,十六進位中的字母不區分大小寫,ABCDEF 也可以寫作 abcdef。
下麵兩張圖詳細演示了十六進位加減法的運算過程。
1) 十六進位加法:6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11
2) 十六進位減法:D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF
希望對你有幫助! 其實做為一個編程學習者,有一個學習的氛圍跟一個交流圈子特別重要這裡我推薦一個C語言C++交流Q群1108152000,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。 微信公眾號:C語言編程學習基地