首頁技術文章正文

同一個整型常量怎樣在不同進制間之間轉(zhuǎn)換?

更新時間:2022-01-25 來源:黑馬程序員 瀏覽量:

整型常量可以分別用二進制、八進制、十進制和十六進制表示,不同的進制并不影響數(shù)據(jù)本身的大小,同一個整型常量可以在不同進制之間轉(zhuǎn)換,具體轉(zhuǎn)換方式如下。

1.十進制和二進制之間的轉(zhuǎn)換

(1)十進制轉(zhuǎn)二進制。

十進制轉(zhuǎn)換成二進制就是一個除以2取余數(shù)的過程。把要轉(zhuǎn)換的數(shù),除以2,得到商和余數(shù),將商繼續(xù)除以2,直到商為0。最后將所有余數(shù)倒序排列,得到數(shù)就是轉(zhuǎn)換結(jié)果。以十進制的6轉(zhuǎn)換為二進制為例進行說明,如圖2-13所示。

三次除以2計算得到余數(shù)依次是0、1、1,將所有余數(shù)倒序排列是110。所以十進制的6轉(zhuǎn)換成二進制,結(jié)果110。

(2)二進制轉(zhuǎn)十進制。

二進制轉(zhuǎn)換成十進制要從右到左用二進制位上的每個數(shù)去乘以2的相應次方,例如,將最右邊第一位的數(shù)乘以2的0次方,第二位的數(shù)乘以2的1次方,第n位的數(shù)乘以2的n一1次方,然后把所有乘得的結(jié)果相加,得到的結(jié)果就是轉(zhuǎn)換后的十進制。

以二進制教01100100轉(zhuǎn)換為十進制為例進行說明,轉(zhuǎn)換方式如下:

0·2*0+20+1+2'+0*22+0*23+0*24+1*25+1*24+0*27*100

由于0乘以多少都是0,所以上述表達式也可以簡寫為:

142+3*2+1*26=100

得到的結(jié)果100就是二進制數(shù)01100100轉(zhuǎn)換后的十進制表現(xiàn)形式。

2.二進制和八進制、十六進制之間的轉(zhuǎn)換

編程中之所以要用八進制和十六進制,是因為它們與二進制之間的互相轉(zhuǎn)換很方使,而且它們比一串長的二進制數(shù)方便書寫和記憶。接下來,就為大家詳細介紹如何將二進制料換為八進制和十六進制。

(1)二進制轉(zhuǎn)八進制。

二進制轉(zhuǎn)八進制時,首先需要將二進制數(shù)自右向左每三位分成一段(不足三位的,在左倒補0),然后將二進制數(shù)每段的三位數(shù)轉(zhuǎn)為八進制的一位,轉(zhuǎn)換過程中數(shù)值的對應關系如表2-4所示。

表2-4二進制和八進制數(shù)值對應表

了解了二進制轉(zhuǎn)八進制的規(guī)別,接下來詳細講解如何將一個二進制數(shù)00101010轉(zhuǎn)為八進制,具體步驟如下:

①每三位分成一段,結(jié)果為:000 101 010。

②將每段的數(shù)值分別查表替換,結(jié)果如下:

000→0

101→5

010→2

③將替換的結(jié)果進行組合,轉(zhuǎn)換的結(jié)果為052(注意八進制必須以0開頭)。

(2)二進制轉(zhuǎn)十六進制。

二進制轉(zhuǎn)換十六進制,與轉(zhuǎn)八進制類似,不同的是要將二進制數(shù)每四位分成一段(不足四位的,在左側(cè)樸0),然后通過查表將二進制數(shù)每段的四位數(shù)特換為八進制的每一位即可。二進制轉(zhuǎn)十六進制過程中數(shù)值的對應關系如表2-5所示。

了解了二進制轉(zhuǎn)十六進制的規(guī)則,接下來通過一個例于來學習。假設要將一個二進制數(shù)10100101轉(zhuǎn)為十六進制,具體步驟如下;

①每四位分成一段,結(jié)果為:1010 0101。

②將每段的數(shù)值分別查表替換,結(jié)果如下:

1010-→A

0101→5


③將替換的結(jié)果進行組合,轉(zhuǎn)換的結(jié)果為OxA5或0XA5(注意十六進制必須以Ox或者OX開頭)。


猜你喜歡:

什么是常量?怎樣定義常量?

什么是JAVA常量?

什么是整型?怎樣理解Python的整型?

MySQL字符串和二進制數(shù)據(jù)類型介紹

黑馬程序員java高級軟件工程師培訓

分享到:
在線咨詢 我要報名
和我們在線交談!