為什么需要八進制和十六進制? 十六進制的意義何在


通俗的說就是二進制在顯示和傳輸時太長了。

編程中,我們常用的還是10進制.畢竟C/C++是高級語言。   

比如:int a = 100,b = 99;   

不過,由於數據在計算機中的表示,最終以二進制的形式存在,所以有時候使用二進制,可以更直觀地解決 問題。但二進制數太長了。比如int 類型占用4個字節,32位。比如100,用int類型的二進制數表達將是:   

0000 0000 0000 0000 0110 0100   

面對這么長的數進行思考或操作,沒有人會喜歡。因此,C,C++ 沒有提供在代碼直接寫二進制數的方法。用16進制或8進制可以解決這個問題。因為,進制越大,數的表達長度也就越短。

 

不過,為什么偏偏是16或8進制,而不其它的,諸如9或20進制呢?2、8、16,分別是2的1次方,3次方,4次方。這一點使得三種進制之間可以非常直接地互相轉換。8進制或16進制縮短了二進制數,但保持了二進制數的表達特點。
 

十六進制的意義:
1.用於計算機領域的一種重要的數制   

2.對計算機理論的描述,計算機硬件電路的設計都是很有益的。比如邏輯電路設計中,既要考慮功能的完備,還要考慮用盡可能少的硬件,十六進制就能起到一些理論分析的作用。比如四位二進制電路,最多就是十六種狀態,也就是一種十六進制形式,只有這十六種狀態都被用上了或者盡可能多的被用上,硬件資源才發揮了盡可能大的作用。   

3.十六進制更簡短,因為換算的時候一位16進制數可以頂4位2進制數。

 

十六進制的表示:
C語言、Shell、Python語言及其他相近的語言使用字首“0x”,例如“0x5A3”。開頭的“0”令解析器更易辨認數,而“x”則代表十六進制(就如“O”代表八進制)。在“0x”中的“x”可以大寫或小寫。

 

然后再說內存:

一個內存地址存着一個對應的值, 內存就相當於(addr,val)的大hash表,c語句的語義基本就是改變hash值。

如 int i = 3; 
假設 i的內存地址為 0x8049320 ,那么這句話的語義是0x8049320 = 3,經過i = 3后,i為(0x8049320,3)

int b = i;
假設 b的內存地址為 0x8049324 ,那么這句話的語義是0x8049324 = i對應的val = 3,此時b為(0x8049324,3)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM