我們平時使用的數字都是由 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 都是有效的十六進位。
下面兩張圖詳細演示了十六進位加減法的運算過程。
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
特別聲明:內容歸原作者所有 ,轉載此文是出於傳遞更多信息之目的。若有來源標註錯誤或侵犯了您的合法權益,我們將及時更正、刪除,謝謝。
戳📍「閱讀原文」我們一起進步📝
好不好看👁你說了算 +1🌟