二進(jìn)制、八進(jìn)制、十六進(jìn)制2

字號:

6.1 為什么需要八進(jìn)制和十六進(jìn)制?
    編程中,我們常用的還是10進(jìn)制……必竟C/C++是高級語言。
    比如:
    int a = 100,b = 99;
    不過,由于數(shù)據(jù)在計(jì)算機(jī)中的表示,終以二進(jìn)制的形式存在,所以有時(shí)候使用二進(jìn)制,可以更直觀地解決問題。
    但,二進(jìn)制數(shù)太長了。比如int 類型占用4個(gè)字節(jié),32位。比如100,用int類型的二進(jìn)制數(shù)表達(dá)將是:
    0000 0000 0000 0000 0110 0100
    面對這么長的數(shù)進(jìn)行思考或操作,沒有人會(huì)喜歡。因此,C,C++ 沒有提供在代碼直接寫二進(jìn)制數(shù)的方法。
    用16進(jìn)制或8進(jìn)制可以解決這個(gè)問題。因?yàn)?,進(jìn)制越大,數(shù)的表達(dá)長度也就越短。不過,為什么偏偏是16或8進(jìn)制,而不其它的,諸如9或20進(jìn)制呢?
    2、8、16,分別是2的1次方,3次方,4次方。這一點(diǎn)使得三種進(jìn)制之間可以非常直接地互相轉(zhuǎn)換。8進(jìn)制或16進(jìn)制縮短了二進(jìn)制數(shù),但保持了二進(jìn)制數(shù)的表達(dá)特點(diǎn)。在下面的關(guān)于進(jìn)制轉(zhuǎn)換的課程中,你可以發(fā)現(xiàn)這一點(diǎn)。