更新時(shí)間:2022-01-25 來源:黑馬程序員 瀏覽量:
整型常量可以分別用二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制表示,不同的進(jìn)制并不影響數(shù)據(jù)本身的大小,同一個(gè)整型常量可以在不同進(jìn)制之間轉(zhuǎn)換,具體轉(zhuǎn)換方式如下。
十進(jìn)制轉(zhuǎn)換成二進(jìn)制就是一個(gè)除以2取余數(shù)的過程。把要轉(zhuǎn)換的數(shù),除以2,得到商和余數(shù),將商繼續(xù)除以2,直到商為0。最后將所有余數(shù)倒序排列,得到數(shù)就是轉(zhuǎn)換結(jié)果。以十進(jìn)制的6轉(zhuǎn)換為二進(jìn)制為例進(jìn)行說明,如圖2-13所示。
三次除以2計(jì)算得到余數(shù)依次是0、1、1,將所有余數(shù)倒序排列是110。所以十進(jìn)制的6轉(zhuǎn)換成二進(jìn)制,結(jié)果110。
二進(jìn)制轉(zhuǎn)換成十進(jìn)制要從右到左用二進(jìn)制位上的每個(gè)數(shù)去乘以2的相應(yīng)次方,例如,將最右邊第一位的數(shù)乘以2的0次方,第二位的數(shù)乘以2的1次方,第n位的數(shù)乘以2的n一1次方,然后把所有乘得的結(jié)果相加,得到的結(jié)果就是轉(zhuǎn)換后的十進(jìn)制。
以二進(jìn)制教01100100轉(zhuǎn)換為十進(jìn)制為例進(jìn)行說明,轉(zhuǎn)換方式如下:
0·2*0+20+1+2'+0*22+0*23+0*24+1*25+1*24+0*27*100
由于0乘以多少都是0,所以上述表達(dá)式也可以簡寫為:
142+3*2+1*26=100
得到的結(jié)果100就是二進(jìn)制數(shù)01100100轉(zhuǎn)換后的十進(jìn)制表現(xiàn)形式。
編程中之所以要用八進(jìn)制和十六進(jìn)制,是因?yàn)樗鼈兣c二進(jìn)制之間的互相轉(zhuǎn)換很方使,而且它們比一串長的二進(jìn)制數(shù)方便書寫和記憶。接下來,就為大家詳細(xì)介紹如何將二進(jìn)制料換為八進(jìn)制和十六進(jìn)制。
二進(jìn)制轉(zhuǎn)八進(jìn)制時(shí),首先需要將二進(jìn)制數(shù)自右向左每三位分成一段(不足三位的,在左倒補(bǔ)0),然后將二進(jìn)制數(shù)每段的三位數(shù)轉(zhuǎn)為八進(jìn)制的一位,轉(zhuǎn)換過程中數(shù)值的對(duì)應(yīng)關(guān)系如表2-4所示。
表2-4二進(jìn)制和八進(jìn)制數(shù)值對(duì)應(yīng)表
了解了二進(jìn)制轉(zhuǎn)八進(jìn)制的規(guī)別,接下來詳細(xì)講解如何將一個(gè)二進(jìn)制數(shù)00101010轉(zhuǎn)為八進(jìn)制,具體步驟如下:
①每三位分成一段,結(jié)果為:000 101 010。
②將每段的數(shù)值分別查表替換,結(jié)果如下:
000→0
101→5
010→2
③將替換的結(jié)果進(jìn)行組合,轉(zhuǎn)換的結(jié)果為052(注意八進(jìn)制必須以0開頭)。
二進(jìn)制轉(zhuǎn)換十六進(jìn)制,與轉(zhuǎn)八進(jìn)制類似,不同的是要將二進(jìn)制數(shù)每四位分成一段(不足四位的,在左側(cè)樸0),然后通過查表將二進(jìn)制數(shù)每段的四位數(shù)特?fù)Q為八進(jìn)制的每一位即可。二進(jìn)制轉(zhuǎn)十六進(jìn)制過程中數(shù)值的對(duì)應(yīng)關(guān)系如表2-5所示。
了解了二進(jìn)制轉(zhuǎn)十六進(jìn)制的規(guī)則,接下來通過一個(gè)例于來學(xué)習(xí)。假設(shè)要將一個(gè)二進(jìn)制數(shù)10100101轉(zhuǎn)為十六進(jìn)制,具體步驟如下;
①每四位分成一段,結(jié)果為:1010 0101。
②將每段的數(shù)值分別查表替換,結(jié)果如下:
1010-→A
0101→5
③將替換的結(jié)果進(jìn)行組合,轉(zhuǎn)換的結(jié)果為OxA5或0XA5(注意十六進(jìn)制必須以O(shè)x或者OX開頭)。