更新時間:2018-01-30 來源:黑馬程序員 瀏覽量:
計算機本身是以二進制存儲數據的,因此我們經常會涉及到進制之間的轉換,接下來我們進行學習。
計算機內部之所以采用二進制,其主要原因是二進制具有以下優點:
(1)技術上容易實現。用雙穩態電路表示二進制數字0和1是很容易的事情。
(2)可靠性高。二進制中只使用0和1兩個數字,傳輸和處理時不易出錯,因而可以保障計算機具有很高的可靠性。
(3)運算規則簡單。與十進制數相比,二進制數的運算規則要簡單得多,這不僅可以使運算器的結構得到簡化,而且有利于提高運算速度。
(4)與邏輯量相吻合。二進制數0和1正好與邏輯量“真”和“假”相對應,因此用二進制數表示二值邏輯顯得十分自然。
(5)二進制數與十進制數之間的轉換相當容易。人們使用計算機時可以仍然使用自己所習慣的十進制數,而計算機將其自動轉換成二進制數存儲和處理,輸出處理結果時又將二進制數自動轉換成十進制數,這給工作帶來極大的方便。
一、十進制和二進制間的互相轉換
1. 十進制轉二進制
十進制轉換成二進制就是一個除以2取余數的過程。把要轉換的數,除以2,得到商和余數,將商繼續除以2,直到商為0。最后將所有余數倒序排列,得到數就是轉換結果。例如將6轉換為二進制數的過程只需將6三次除以2計算得到余數依次是:0、1、1,將所有余數倒序排列是:110了。
2. 二進制轉十進制
二進制轉換成十進制,只需將二進制轉化成十進制要從右到左用二進制位上的每個數去乘以2的相應次方,然后把得到的所有結果相加,得到的結果就是轉換后的十進制。如把一個二進制數0110 0100轉換為10進制
0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26+ 0 * 27 = 100
二、二進制和八進制、十六進制之間的轉換
3. 二進制轉八進制
八進制比二進制數更容易記憶,因此可以把二進制轉換為八進制,這時可以用到下表。
有了這張表,就可以方便的把二進制數轉換成八進制數。首先,將一個二進制數自右向左每三位分成一段。然后,將每一段用表中的八進制數替換即可。
例如:100101010
每三位分成一段的樣式:100 101 010
查表替換:100 ->4,101 ->5,010 ->2
替換結果:0452
2、二進制轉十六進制
將二進制轉換成十六進制也要用到二進制和十六進制之間的轉換表,轉換方法與八進制類似,只是要將二進制數每四位分成一段即可。
三、十進制和八進制、十六進制間的轉換
把十進制轉換成八進制或十六進制如同把十進制轉換成二進制一樣,除以8、16,然后取余數倒敘排列即可。但是八進制和十六進制不像二進制那樣簡單,運算比較麻煩。
根據1個八進制位代表3個二進制位和1個十六進制位代表4個二進制位。可以先把十進制轉換成二進制進制,然后再把二進制與八進制和十六進制之間的轉換規則進行轉換。
如把十進制的60轉換成八進制和十六進制,先把60轉換為二進制為111100。根據二進制和八進制之間的轉換表,把111100格式轉換為八進制。
每三位分成一段的樣式:111 100
查表替換:111 -->7,100 -->4
替換結果:074
根據二進制和十六進制之間的轉換表,把111100格式轉換為十六進制。
每四位分成一段的樣式:0011 1100(最左面不夠四位用0替代)
查表替換:0011-->3,1100 --> C
替換結果:0x3C
把八進制和十六進制轉換為十進制,可以采用把八進制和十六進制位上的數乘以其相應次方,然后把各數相加的方法,也可以先逆向的把八進制或十六進制轉換為二進制的形式,然后把二進制轉換為十進制。
本文版權歸黑馬程序員JavaEE學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員JavaEE培訓學院