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