之前看到的都是鋪墊這術語那術語的,看了半天,還不知道怎么處理。這里就根據各種文章和自己的理解總結一小下下, 不一定准確,省略一些概念等繁瑣的陳述,直接上結論
1.二進制轉八進制:以小數點為分界線,各自向左向右 每3位組成一組,不夠位數的自動向高位或向低位補0,然后把每組的數字轉換為八進制數就可以了,小數點的位置不變。
eg:(1101110.1011)2 分組后 (001)(101)(110).(101) (100) 然后把每組換算成8進制數就可以了(紅色為補的0) (156.54)8
逆向思維:八進制轉二進制 把每一位八進制數變為3位二進制數就行了(別說你不會啊!~)(小數點的位置不變)
2.二進制轉十進制:按權相加法,即將二進制每位上的數乘以權,然后相加之和即是十進制數
eg: (1101110.1011)2 變成加法 26+25+0+23+22+21+0 . 2-1+0+2-3+2-4 = 64+32+0+8+4+2+0 . 0.5+0+0.125+0.0625 =110.6875 (紅色為小數點)
3.二進制轉十六進制:以小數點為分界線,各自向左向右 每4位組成一組,不夠位數的自動向高位或向低位補0,然后把每組的數字轉換為十六進制數就可以了,小數點的位置不變。
eg:(1101110.1011)2 分組后 (0110)(1110).(1011)然后把每組換算成16進制數就可以了(紅色為補的0)(6E.B)16
逆向思維:十六進制轉二進制 把每一位十六進制數變為4位的二進制數就行了(你會的!~)(小數點的位置不變)
4.十進制轉二進制:(恩!~這個有點麻煩!)
分為 整數部分 與 小數部分
1)整數部分:除2取余法,即每次將整數部分除以2,余數為該位權上的數,而商繼續除以2,余數又為上一個位權上的數,這個步驟一直持續下去,直到商為0為止,最后讀數時候,從最后一個余數讀起,一直到最前面的一個余數。(好長一句,就是不斷的除2,余數留着,商繼續除,一直除到商為0,把余數反向連起來就OK了)
eg:110
商 余數
110/2 55 0
55/2 27 1
27/2 13 1
13/2 6 1
6/2 3 0
3/2 1 1
1/2 0 1 (這步記着哦~)
此時商為0 了,把余數反向連起來1101110 (注意啊,跟示例2的整數值是否一致呢。。。。!)
2)小數部分:乘2取整法,即將小數部分乘以2,然后取整數部分,剩下的小數部分繼續乘以2,然后取整數部分,剩下的小數部分又乘以2,一直取到小數部分
為零為止。如果永遠不能為零,就同十進制數的四舍五入一樣,按照要求保留多少位小數時,就根據后面一位是0還是1,取舍,如果是零,舍掉,如果是1,向入一位。換句話說就是0舍1入。讀數要從前面的整數讀到后面的整數(這句更長,分解一下,就是不斷乘2,然后把整數留着,把剩下的小數繼續乘2,一直到小數部分為0,把留下的整數部分順序連起來就OK了!至於四舍五入的情況,你會遇到幾次呢?呵呵!)
eg:0.6875
整數 小數
0.6875*2 1 .375
0.375*2 0 .75
0.75*2 1 .5
0.5*2 1 0
此時小數部分為0,把整數連起來1011(正序啊~)(注意啊,跟示例2的小數數值是否一致呢。。。。!)
到此該結束了。怎么樣,高端大氣上檔次吧。恩~(那還有八進制轉十進制、轉十六進制 | 十進制轉八進制、十六進制 | 十六進制轉八進制、轉十進制呢???)
難道真要記住那些繁瑣怪異凌亂變態的規則嗎,一句話,剩下的全借二進制中轉一下(當然你夠厲害或者很** 就另當別論了,呵呵!)
如有錯誤請指出,反正我也不一定改!