巧學二進制
一 什么是進制
進制也就是進位制,是人們規定的一種進位方法。對於任何一種進制-----X進制,就表示某一位置上的數運算時是逢X進一位。十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一,以此類推,X進制就是逢X進位。
二 常見二進制
十進制
0、1、2、3、4、5、6、7、8、9、10、11、12------
二進制
0、1、10、11、100、101、110、111、1000、1001、1011、1111、10000、10001、10011、10111、11111------
八進制
0、1、2、3、4、5、6、7、10、11、12、13、14、15、16、17、20、21------
十六進制
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12、13、14、15、16、17、18、19、1A、1B、1C、1D、1E、1F------
三 進制轉換(正整數)
其他進制轉十進制
-
二進制 10001011 轉換位 十進制(看第一位后面有N個數 1*n^n)
10001011 = 1 * 2^7 + 1 * 2^3 + 1 * 2^2 + 1 * 2^0= 139
-
十進制 102 轉換為 十進制
102 = 1 * 10^2 + 0 * 10^1 + 2 *10^0 = 102
-
二進制 1011001 轉換為 十進制
64 + 16 + 8 + 1 = 89
-
八進制 76 轉換為 十進制
7 * 8^1 + 6 * 8^0= 62
-
十六進制 12b 轉換為 十進制
1 * 16^2 + 2 * 16^1 + b = 299
十進制轉換為其他進制
-
十進制 26 轉換為 二進制
26 / 2 = 13 余 0 13 / 2 = 6 余 1 6 / 2 = 3 余 0 3 / 2 = 1 余 1 結果是 11010
-
十進制 37 轉換為 二進制
37 / 2 = 18 余 1 18 / 2 = 9 余 0 9 / 2 = 4 余 1 4 / 2 = 2 余 0 2 / 2 = 1 余 0 結果 為 100101
-
十進制 489 轉換為八進制
489 / 8 = 61 余 1 61 / 8 = 7 余 5 結果 751
-
總結:十進制轉為N進制。將十進制數除以N,得到的商再除以N,依次類推,直到得到的商小於N,然后在旁邊標出各步的余數,最后從最后一次商開始倒着拼上余數寫出來。高位補零。
2 的次方數
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024
八四二一法 快速轉換
-
二進制 10011011 轉換為 十進制
128 + 16 + 8 + 2 + 1 = 155 128 64 32 16 8 4 2 1 (個人方法) 1 0 0 1 1 0 1 1
-
二進制 1100101001 轉換為 八進制
1 100 101 001 對應 1 4 5 1 結果為 1451
-
十進制 59 轉換為 二進制
32+16+8+2+1=111011
-
八進制 176 轉換為 二進制
1 7 2 001 111 010 1111010
-
二進制 1000111011011 轉換為 十六進制
0001 0001 1101 1011 1 1 D B 11DB
-
十六進制 AD1 轉換為 二進制
1010 1101 0001
-
十進制 89 轉換為 八進制(先轉換為二進制)
89 = 64 + 16 + 8 + 1 001 011 001 131
-
八進制 47 轉換為 十六進制
10 0111 27
四、進制轉換(小數)
十進制轉為二進制
-
十進制數 10.25 轉換為 二進制
整數部分 10 轉換二進制 為 1010 小數部分 0.25 0.25 * 2 = 0.5 取 0 小數部分 0.5 0.5 * 2 = 1 取 1 小數部分 0.0 結束 最后結果 1010.01
-
十進制數 12.58 轉換為 二進制
整數部分 12 轉換為 二進制 1100 小數部分 0.58 0.58 * 2 = 1.16 取 1 小數部分 0.16 0.16 * 2 = 0.32 取 0 小數部分 0.32 0.32 * 2 = 0.64 取 0 小數部分 0.64 0.64 * 2 = 1.28 取 1 小數部分 0.28 0.28 * 2 = 0.56 取 0 小數部分 0.56 0.56 * 2 = 1.12 取 1 小數部分 0.12 繼續 永遠也玩不了 .... 結果 1100.100101....
-
總結:
小數部分只有是 0.5 0.25 0 .75 0.125 0.0625 等 可以是 有限小數 轉換為分數后,分母是 2的次方數 才可以轉為有限小數
-
同樣適用於 十進制 轉 其他進制
二進制轉十進制
-
二進制 1101.1101 轉為 十進制
整數部分 1101 轉為 十進制 為 13 小數部分0.1101= 1 * 2^-1 + 1 * 2^-2 + 0 * 2^-3 + 1 * 2^-4= 0.5 + 0.25 + 0 + 0.0625 = 0.8125 13.8125
-
同樣適用 其他進制 轉換為 十進制
熟記 2 的 負數次方
2^-1=0.5
2^-2=0.25
2^-3=0.125
2^-4=0.0625
2^-5=0.03125
2^-6=0.015625
2^-7=0.0078125
2^-8=0.00390625
2^-9=0.00195312
2^-10=0.00097656
二進制和八進制或十六禁止的小數轉換
-
二進制 10.10010101 轉換為 八進制
整數部分 10 轉 八進制 為 2 小數部分 進行 拆分 3個一組,不足右補零 100——>4 101——>5 010——>2 最后結果 2.452
-
二進制數 10.10010101 轉換為 十六進制
整數部分 10 轉 十六進制 為 2 小數部分進行拆分4個一組, 1001->9 0101->5 最后結果 2.95
-
八進制 17.236 轉換為 二進制
整數部分17轉二進制為1111 小數部分進行拆分 一個拆分成3個數字為一組 2->010 3->011 6->110 最后結果 1111.010011110
-
十六進制 a.3ef 轉換為 二進制
整數部分 a 轉 二進制 為 1010 小數部分進行拆分 一個拆分成4個數字為一組 3->0011 e->1110 f->1111 最后結果 1010.001111101111
五、二進制運算
二進制加法
-
1101 + 100101
1101 +100101 --------- 110010
-
直接轉化為十進制算好之后轉為二進制
1101=13 100101=37 13+37=50 110101
二進制減法
-
1001001 - 10011
1001001 - 10011 --------------- 110110
二進制乘法
-
1001 * 110
1001 x 110 ------------- 0000 1001 1001 --------------- 110110
二進制除法
-
100110 / 110
110 ----------------- 110)100110 110 -------------------------- 111 110 -------------------------- 10 結果 110 余 10