簡單講講二進位制與十進位制的轉換
阿新 • • 發佈:2020-09-12
簡單講講二進位制與十進位制的轉換
本文寫於 2020 年 9 月 12 日
很多人覺得二進位制很奇妙,很難轉換,但其實沒那麼誇張。
首先看一個簡單的十進位制數:123
。
對於 123
而言,是 100+20+3
的結果,也就是 1*100+2*10+3*1
。
再進一步拆分成 10^n(十的 n 次方)後就可以表示為 1*10^2+2*10^1+3*10^0
。
這個時候我們發現這裡其實是存在某種規則的。
列個表看看:
10^2 | 10^1 | 10^0 |
---|---|---|
0 | 0 | 0 |
那麼這是十進位制,換成二進位制的話,會不會是下面這樣呢?
2^2 | 2^1 | 2^0 |
---|---|---|
0 | 0 | 0 |
這也就意味著,100、10、1 變成了 4、2、1。當我們繼續向後推進,二進位制就會變成 8、16……而不是十進位制的 1000、10000……
這個表有啥用呢?
我們來看幾個簡單的例子,十進位制的 2,在二進位制中是就是 10,這點我們非常清楚。
我們將 10 放入表中:
2^2 | 2^1 | 2^0 |
---|---|---|
0 | 1 | 0 |
1*2^1+0*2^0
,誒?!這不就是 2 嗎?
所以我們現在學會了二進位制轉十進位制的方法,就是將二進位制的每一位,乘上二的位數減一次方後相加。
十進位制轉二進位制相對而言要更麻煩一點,也更難想——我們需要解出一個公式:a*1+b*2+c*4+d*8+e*16……
這裡的 a、b、c……都表示的是 0 或 1。
例如 50。可以表示為:0*1+1*2+0*4+0*8+1*16+1*32
,所以 50 的二進位制為 110010。
13 呢?可以表示為 1*1+0*2+1*4+1*8
(完)