進位制的轉換

Donkey31381發表於2024-07-25

任意進位制轉化成十進位制的公式都是 係數基數的權次冪 相加
係數指的是每一位上對應的數字
基數就是幾進位制對應的數字
從右到左依次是01234……
1.二進位制轉十進位制 (二進位制在程式碼中前面要加上0b)取值為0~1
比如說0b1011轉成十進位制就是1
20+1*21+022+1*23=11。那麼這裡還有一個方法就是“8421快速轉換法”,就是提前計算好每個二進位制的1所代表的值,然後再根據要換算的二進位制的值把是1的值相加就好了,比如1011就是1+2+8,1111就是1+2+4+8。
2.八進位制轉十進位制 (八進位制在程式碼中前面要加個0)取值為0~7
比如說023轉換成十進位制就是3
80+2*81=19。
3.十六進位制轉成十進位制 (十六進位制在程式碼中前面要加一個x) 取值為0~9 a~f af分別代表1015
比如ab7就是7160+b*161+a16^2=2743。

而十進位制轉成其他進位制就是數值除以基數然後取餘數一直取到最後商為零為止,組後取餘數倒著拼接

11轉成二進位制就是
其他跟這個都是一樣的模板。

相關文章