c++二进制转十进制_二进制,八进制,十进制,十六进制转换详解~
點 擊 上 方 藍 字 關 注 我 們 哦 ^-^
本文思維導圖:
1.數制:用一組固定的數字和一套統一的規則來表示數目的方法稱為數制。
進位計數制的要素:
①、數碼:用來表示進制數的元素。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?二進制:0,1。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?八進制:0,1,2,3,4,5,6,7
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?十進制:0,1,2,3,4,5,6,7,8,9。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?十六進制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
?、?、基數:數碼的個數。比如2進制數的基數為2。N進制數的基數為N。
?、?、*位權:數制中每一固定位置對應的單位值稱為位權。為,對于 N進制數,整數部分第 i位的位權為N^(i-1),而小數部分第j位的位權為N^-j。
數制/N | 二進制 | 八進制 | 十進制 | 十六進制 |
數碼 | 0,1 | 0,1,2,3,4,5,6,7 | 0,1,2,3,4,5,6,7,8,9 | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F |
基數 | 2 | 8 | 10 | 16 |
規則 | 逢二進一 | 逢八進一 | 逢十進一 | 逢十六進一 |
權 | 2^i-1 | 8^i-1 | 10^i-1 | 16^i-1 |
2.進制轉換
可對照表進行轉換(缺點:容易記錯)
十進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
二進制 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 |
八進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 |
十六進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 |
N進制···>十進制(按權展開)
????????1.二進制···>十進制
????????轉換原則:讓二進制各位上的系數乘以對應的權,然后求其和? ? ? ? ??????11001.11? = 1×2^4 + 1×2^3 + 0×2^2 + 0×2^1 + 0×2^0 + 1×2^-1 + 1×2^-2 = 25.7510
? ? ? ? ?整數:11001 = 1×2^4 + 1×2^3 + 0×2^2 + 0×2^1 + 0×2^0(以小數點為界逐步向左排序)
? ? ? ? ??小數:0.11= 1×2^-1 + 1×2^-2 (以小數點為界逐步向右排序
)
????????2.八進制···>十進制
????????轉換原則:讓八進制各位上的系數乘以對應的權,然后求其和。
????????156.48 = 1×8^2 + 5×8^1 + 6×8^0 + 4×8^-1 = 110.5
????????整數:156 = 1×8^2 + 5×8^1 + 6×8^0
????????小數:0.4 = 4×8^-1
????????3.十六進制···>十進制
????????轉換原則:讓十六進制各位上的系數乘以對應的權,然后求其和。
????????12C16= 1×16^2+2×16^1+C×16^0 = 30010 (C=12)
????????總結:
? ? ? ? ? ? ??轉換原則:?讓N進制各位上的系數乘以對應的權(第i位的位權就為? N^i-?1)?,然后求和 ? ? ? ? ? ? ? ? ?
? ? ? ????????設向右為正方向,所以表示為:整數逆序,小數順序
??????????????注意不要超出數碼范圍^-^
十進制···>N進制
? ? ???整數:除N取余逆排序 ? ? ? ? 小數:乘N取整順排序
? ? ? ?以十進制數463.625轉換為十進制數為例
???1.十進制···>二進制
???46.63510 = 101110.10102
????2.十進制···>八進制(自己根據上述例題嘗試算一下)
? ? ? (255)10= (377)8
? ? ? ?3.十進制···>十六進制(自己根據上述例題嘗試算一下)
???????(255)10 =(ff)16。
**************************************************************************
八進制--->二進制
????????2268 = (10010110)2
????????1. ?方法一:除2取余
????????(一位八進制數可轉換為三位二進制數,整數不夠三位在左側補0,小數在右側補0)
????????2. ?方法二:八進制···>十進制···>二進制
?????????????2268 = 2×8^2 + 2×8^1 + 6×8^0 = 15010
?????????????15010 = 100101102
二進制--->八進制(8=2^3)
???????(一位八進制數可轉換為三位二進制數,整數不夠三位在左側補0,小數在右側補0)
? ? ? 100101102 = ( ?226 )8
? ? ? 10010110=010010110=0×2^2+1×2^1+0×2^0+0×2^2+1×2^1
????????????????????? ? ? ? ? ? ? ? ? ? ? =+0×2^0+1×2^2+1×2^1+0×2^0
十六進制--->二進制
????????2C 16= 1011002
????????1.方法一:四合一(16=2^4)
? ?????(一位十六進制數可轉換為四位二進制數,整數不夠四位在左側補0,小數在右側補0)
??????? 2. 方法二:十六進制···>十進制···>二進制
????????2C16 = 2×16^1 + 12×16^0 = 4410
????????4410 = 1011002
二進制--->十六進制
???????1011002=1×2^1+(1×2^3+1×2^2)=2C16
十六進制與八進制之間的轉換
????????方法一:十六進制二進制八進制
????????方法二:十六進制十進制八進制
總結
以上是生活随笔為你收集整理的c++二进制转十进制_二进制,八进制,十进制,十六进制转换详解~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql多大_洞悉MySQL底层架构:
- 下一篇: testflight开发者已将您从测试计