R進制轉十進制使用「按權站開發」算法
將R進制數的每一位數值用R^K表示,冪的底數是R,指數爲K,K與該位和小數點之間的距離有關,當該位位於小數點的左邊,K值是該位和小數點之間數碼的個數,而當該位位於小數點右邊,K值是負值,其絕對值是該位和小數點之間數碼的個數加1。spa
栗子1:開發
二進制:10100.01 = 1*2^4+1*2^2+1*2^-2技巧
栗子2:二進制
七進制:604.01 = 6*7^2+4*7^0+1*7^-2方法
十進制轉R進制使用「短除法」總結
栗子3:將十進制94轉二進制co
二進制|十進制 餘數思維
2|94 0background
2|47 1
2|23 1
2|11 1
2|5 1
2|2 0
2|1 1
0
一直除到0爲止,將餘數反序排列,即爲二機制,結果爲 「1 011 110」。
栗子4:將十進制94轉八進制
二進制|十進制 餘數
8|94 6
8|11 3
8|1 8
0
一直除到0爲止,將餘數反序排列,即爲八進制,結果爲 「836」。
二進制轉八進制和十六進制及2^N進制,慣用技巧
栗子4:將二進制1 011 110轉八進制
將1011110按「從右致左,沒3位一段,不足部分用0補齊」,即001011110 ,而後每3位轉換成八進制:
第一段「001」,1*2^0 = 1
第二段「011」,1*2^1 + 1*2^0 = 3
第三段「110」,1*2^2 + 1*2^1= 6
轉換後的八進制數爲「136」
栗子4:將二進制1 011 110轉16進制
將1011110按「從右致左,沒4位一段,不足部分用0補齊」,即001011110 ,而後每3位轉換成八進制:
第一段「0000」,0
第二段「0101」,1*2^2 + 1*2^0 = 5
第三段「1110」,1*2^3 + 1*2^2 + 1*2^1 = 14(E)
轉換後的十六進制數爲「5E」
擴散思惟
經過「栗子3個」,「栗子4」聯想到,將二進制轉換成2^N進制的算法技巧
2^3(8)進制,每3個一段;2^4(16)進制,每4個一段;推測4(2^2)進制,每2個一段;推測32(2^5)進制,每5位一段;
推理驗證
將二進制1 011 110轉四進制:==> 01011110 ==> 1132,
驗證過程「1 011 110」的十進制爲「94」 ==> 「94」轉換成四進製爲「1132」;
將二進制1 011 110轉三十六進制:==> 0001011110 ==> 2U(U對應30),
驗證過程「1 011 110」的十進制爲「94」 ==> 「94」轉換成三十六進制爲「2M」(M對應22);
總結:將2進制轉換成2^N位時,當N小於5時,即轉換16進制如下時,每N位一段,分段轉換的方法才成立