關于計算機的二進制,首先來想想我們日常使用的十進制。
那么為什么我們日常要使用十進制呢?其實看看你的雙手,一共有幾根手指?是不是一共十根?那么10 代表的就是一雙手的手指的數(shù)量。例如1234,他所代表的示意是:
1 * 1000 + 2 * 100 + 3 *10 + 4 *1 。
換一個形式就是1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 。
但是到了計算機里這種數(shù)值表述方式就麻煩了,如果我們要在計算機保存十進制數(shù)值那么,計算機得有能力用某種形式描述出至少10種狀態(tài)才行也就是0到9。
那么想象一下要是我們每只手只有3個手指,那么如果10 依舊代表一雙手(六根手指),此時12相當于一雙手加兩個手指 也就是“八”。這種計數(shù)方式我們可以稱為6進制。那么234這個數(shù)值在六進制里代表什么呢?2 *6^2 + 3*6^1 + 4*6^0
遺憾的是計算機沒有手指。那它如何描述不同的數(shù)值呢?使用高低電平(也就是較高電壓和較低電壓),舉個例子,假如你有一個電子游戲機,它使用的是三節(jié)5號電池,電壓就是4.5V,那么它會用大于2.5v的電壓代表高電平小于1v的電壓代表低電平,這樣就可以區(qū)分出兩種不同的狀態(tài)。為什么這么干呢?因為使用這種表述方式的電路設計相對簡單。
這就好像計算機一共只有兩根不同的手指。那么怎么描述數(shù)值呢?使用“二進制”方式。
在十進制里,我們的每一位數(shù)值需要10種狀態(tài) 0 1 2 3 4 5 6 7 8 9 ; 那么二進制里只需要 0 和1 就夠了,并用高電平對應1,低電平對應0。這個時候 10 依舊代表計算機的全部“手指”,也就是 “二”。110呢?自然就是 1 * 2^2 + 1 * 2^1 + 0 * 2^0 也就是 1*4 + 1*2 + 0這不就是相當于十進制里的6嘛!那么1010呢 1*2^3 + 0 * 2^2 + 1 *2^1 + 0 *2^0 這是不是就是十進制數(shù)值里的 “十” ?
但是新的困惑又來了。如果我們寫一個 數(shù)字 10 在我們不知道它的進制的前提下,你能確定它到底代表的是幾個手指嗎?可能是 二 可能是 六 也可能是 十。所以為了在書寫是方便區(qū)分一般我們要在二級制數(shù)值前面加一個標記“0B”,也就是 0B10 或者換一個數(shù)字 0b10101010。
最后我們來試著計算一下 0b1111 是我們人類自然數(shù)值中的幾?8 + 4 +2 +1 = 15
0b1011呢? 8 + 0 + 2 + 1 = 11
0b1100 8 + 4 + 0 +0 = 12
那么 十進制的 9 呢?變成二級制就是 0b1001
123 就是 0b01111011
這樣我們就可以讓計算機用二級制保存保存我們人類的自然數(shù)啦。