簡單講講二進制與十進制的轉換


簡單講講二進制與十進制的轉換

本文寫於 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

OK,我們先列個表看看:

10^2 10^1 10^0
2^2 2^1 2^0
3^2 3^1 3^0
8^2 8^1 8^0

在這里我們將十進制的規則替換到了 2、3、8 進制上。

這個表有啥用呢?

我們來看幾個簡單的例子,十進制的 2,在二進制中是就是 10,這點我們非常清楚。

我們將 10 放入表中:

10^1 10^0
0 2
2^1 2^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)

進一步擴展可以得到 m 進制轉換 n 進制的算法:

a1 * m^0 + b1 * m^1 + c1 * m^2 + ... = a2 * n^0 + b2 * n^1 + c2 * n^2 + ...

例如 50。可以表示為:0*1 + 1*2 + 0*4 + 0*8 + 1*16 + 1*32,所以 50 的二進制為 110010。

13 呢?可以表示為 1*1 + 0*2 + 1*4 + 1*8,即為 1101。

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM