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