實際上,計算機本身是不需要十六進制的,計算機只需要二進制,需要十六進制的是人。
每個十六進制中的數字代表4個比特,你可以非常直觀的從十六進制中知道對應的二進制是啥,比如給定一個十六進制數,假設其最后一位是9,那么你立刻就能知道將該十六進制數字轉為二進制后最后四位是1001:
十六進制數字9對應的二進制為1001。
十六進制數字19對應的二進制為11001。
十六進制數字119對應的二進制為1 00011001
但如果給定一個十進制數字,同樣假設其最后一位是9,你知道其對應的二進制嗎?顯然,你是不知道的。
十進制數字9對應的二進制為1001。
十進制數字19對應的二進制為1 0011。
十進制數字119對應的二進制為111 0111。
在十進制中,你必須知道所有的進位上的數字后才可以將其轉為二進制,這非常不直觀,顯然如果你想把復雜的十進制數字轉為二進制不稍加計算是搞不定的。
因此,我們可以得出結論:
十六進制是二進制的好朋友,但十進制不是
那么,為什么十六進制是二進制的好朋友呢?
關鍵在于進制數16是2的4次方,2^4 = 16,而進制數10并不是2的整數次冪,因此8進制(2^3),16進制(2^4),32進制(2^5),64進制(2^6)等等都是二進制的好朋友。
有的同學肯定會問,為什么我們不使用32進制呢?
使用32進制,每5個比特位可以用一個32進制數字來表示,由于人類的數字系統只有0~9,因此在16進制中10是字母a來表示的、11:b、12:c、13:d、14:e、15:f,但如果我們使用32進制,那么16:g、17:h.......31:v,這時給一個32進制數字“apple”,你的大腦可能會一團漿糊,但十六進制對人類來說基本可以應付得來,原因就在于16進制中人類熟悉的數字占據了10個,剩下的只借用了6個字母,還算簡單。
因此,32進制及以上都不太適合給人使用,原因就在于:
可讀性太差。
此外,使用十六進制還有一個重要原因:
一個字節有8個比特
我們知道內存是按照字節粒度來尋址的,因此采用的數字系統必須很好的表達一個字節,也就是8比特,從這個角度上看256進制(2^8)是最好的,因為一個256進制就是表達一個字節,但還是基于可讀性的原因,256進制對于人類來說記憶負擔過重,而16進制則剛剛好,一個16進制數字表示一個字節的一半(4個比特),兩個16進制數字正好表示一個字節。
為什么一個字節有8比特而不是7比特或者9比特呢?其實答案很簡單:
歷史原因
要知道,早期的計算機可不是一個字節8比特,那時一個字節4比特、6比特或者7比特的都有。
但4比特或者6比特還是太受限制,因為我們需要把字母數字以及標點符號等等轉為二進制表示,4比特或6比特能表示的數量太少。
到了1963年,ASCII正式提出,該標準使用7比特來表示字符,但當時的IBM System/360大型機采用了8比特字節,使得8比特字節開始流行起來,到后來微型計算機出現時也自然采用了這一表示方法。
審核編輯:劉清
-
計算機
+關注
關注
19文章
7168瀏覽量
87142 -
十六進制
+關注
關注
2文章
32瀏覽量
37564
原文標題:為什么計算機需要十六進制?
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論