乙個位元組由8位組成。在二進位制表示法中,他的值域是00000000₂~11111111₂。如果看成十進位制整數,他的值域就是0₁₀~255₁₀。兩種符號表示法對於描述位模式來說都不是非常方便。二進位制表示法太冗長,而十進位制表示法與位模式的相互轉化很麻煩。替代的方法是以16為基數,或者叫做十六進製制(hexadecimal)數,來表示位模式。十六進製制(簡寫為」hex」)使用數字』0』~』9』以及字元以及字元』a』~』f』來表示16個可能的值。如下所示展示了16個十六進製制數字對應的十進位制值和二進位制值。用十六進製制書寫,乙個位元組的值域為00₁₆~ff₁₆。
在c語言中,以0x或ox開頭的數字常量被認為是十六進製制的值。字元』a』~'f』既可以是大寫,也可以是小寫。例如,我們可以將數字fa1d37b16寫作 oxfa1d37b,或者oxfald37b,甚至是大小寫混合,比如,0xfald37b。
編寫機器級程式的乙個常見任務就是在位模式的十進位制、二進位制和十六進製制表示之間人工轉換。 二進位制和十六進製制之間的轉換比較簡單直接,因為可以一次執行乙個十六進製制數字的轉換。 數字的轉換可以參考如圖, 乙個簡單的竅門是,記住十六進製制
數字a,c和f相應的十進位制值。而對於把十六進製制值b、d和e轉換成十進位制值,則可以通過計算它們與前三個值的相對關係來完成。
比如,假設給你乙個數字0x173a4c。可以通過展開每個十六進製制數字,將它轉換為二進位制格株式,如下所示:
十六進製制 1 7 3 a 4 c
二進位制 0001 0111 0011 1010 0100 1100
這樣就得到了二進位制表示 000101110011101001001100。反過來,如果給定乙個二進位制數字1111001010110110110011,可以通過首先把它分為每4位一組來轉換為十六進製制。不過要注意,如果位總數不是4的倍數,最左邊的一組可以少於4位,前面用0補足。 然後將每個4位組轉換為相應的十六進製制數字:
二進位制 11 1100 1010 1101 1011 0011
十六進製制 3 c a d b 3
十六進製制表示浮點數
十六進製制表示浮點數需要先將浮點數表示為二進位制的數字。整數部分,除以2取餘數表示為整數部分 小數部分,乘以2取整數部分 以 2.45 轉化為二進位制為例 整數部分 2 可以表示為 10 小數部分 0.45 2 0.9 取整數 0 0.9 2 1.8 取整數 1 0.8 2 1.6 取整數 1 0....
JAVA基礎 八進位制,十六進製制表示
color indigo 可以使用八進位制 十六進製制的型別 long,int,short,byte 八進位制表示 以0作為字首,數碼有0,1,2,3,4,5,6,7,逢8進製 如 8 十進位制 010 八進位制 十六進製制表示 以0x作為字首,數碼有0,1,2,3,4,5,6,7,8,9,a,b,...
C 中二進位制 八進位制 十六進製制表示方法
一 八進位制表示,並十進位制輸出 std cout std dec 011 std endl 輸出結果為9 二 十六進製制表示,並十進位制輸出 std cout std dec 0x11 std endl 輸出結果為17 三 由於不能採用採用c 直接表示二進位制,所以採用bitset表示二進位制 方...