表示方法
十六進制照樣採用位置計數法,位權是16為底的冪。對於n位整數,m位小數的十六進制數用加權係數的形式表示。舉例說明
6進制的20表示成10進制就是:2×16¹+0×16º=32
10進制的32表示成16進制就是:20
十進制數可以轉換成十六進制數的方法是:十進制數的整數部分“除以16取余”,十進制數的小數部分“乘16取整”,進行轉換。
比如說十進制的0.1轉換成八進制為0.0631463146314631。就是0.1乘以8=0.8,不足1不取整,0.8乘以8=6.4,取整數6,0.4乘以8=3.2,取整數3,依次下算。
編程中,我們常用的還是10進制.畢竟C/C++是高級語言。
比如:
inta=100,b=99;
不過,由於數據在計算機中的表示,最終以二進制的形式存在,所以有時候使用二進制,可以更直觀地解決問題。
C,C++沒有提供在代碼直接寫二進制數的方法。用16進制或8進制可以解決這個問題。因為,進制越大,數的表達長度也就越短。2、8、16,分別是2的1次方、3次方、4次方。這一點使得三種進制之間可以非常直接地互相轉換。8進制或16進制縮短了二進制數,但保持了二進制數的表達特點。
轉換
二進制轉換十進制
二進制數第0位的權值是2的0次方,第1位的權值是2的1次方
所以,設有一個二進制數:101100100,轉換為10進制為:356
用橫式計算
0×20+0×21+1×22+0×23+0×24+1×25+1×26+0×27+1×28=356
0乘以多少都是0,所以我們也可以直接跳過值為0的位:
1×22+1×25+1×26+1×28=356
4+32+64+256=356
八進制轉換十進制
八進制就是逢8進1。
八進制數采0~7這八數來表達一個數。
八進制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方
所以,設有一個八進制數:1507,轉換為十進制為:839,具體方法如下:
可以用橫式直接計算:
7×80+0×81+5×82+1×83=839
也可以用豎式表示
第0位7×80=7
第1位0×81=0
第2位5×82=320
第3位1×83=512
十六進制轉換十進制
16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這六個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十六進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方
所以,在第N(N從0開始)位上,如果是數β(β大於等於0,並且β小於等於15,即:F)表示的大小為β×16的N次方。
表達方法
程式的表達方法環境格式備註URL%hex無XML,XHTML&#xhex無HTML,CSS#hex6位,表示顏色UnicodeU+hex6位,表示字元編碼MIME=hex無Modula-2#hex無Smalltalk,ALGOL6816rhex無CommonLisp#xhex或#16rhex無IPv68個hex用:分隔無CC++的表達方法
如果不使用特殊的書寫形式,16進制數也會和10進制相混。隨便一個數:9876,就看不出它是16進制或10進制。
C,C++規定,16進制數必須以0x開頭。比如0x1表示一個16進制數。而1則表示一個十進制。另外如:0xff,0xFF,0X102A,等等。其中的x也不區分大小寫。(注意:0x中的0是數字0,而不是字母O)
以下是一些用法示例:
inta=0x100F;
intb=0x70+a;
至此,我們學完了所有進制:10進制,8進制,16進制數的表達方式。最後一點很重要,C/C++中,10進制數有正負之分,比如12表示正12,而-12表示負12,;但8進制和16進制只能表達無符號的正整數,如果你在代碼中寫:-078,或者寫:-0xF2,C,C++並不把它當成一個負數。
在轉義符中的使用
轉義符也可以接一個16進制數來表示一個字元。如\'?\'字元,可以有以下表達方式:
\'?\'//直接輸入字元
\'\77\'//用八進制,此時可以省略開頭的0
\'\0x3F\'//用十六進制
同樣,這一小節只用於了解。除了空字元用八進制數\'\0\'表示以外,我們很少用後兩種方法表示一個字元。
標準表示
在數制使用時,常將各種數制用簡碼來表示:如十進制數用D表示或省略;二進制用B來表示;十六進制數用H來表示。如:十制數123表示為:123D或者123;二進制數1011表示為:1011B;十六進制數3A4表示為:3A4H。
另外在編程中十六進制數也用“0x”作為開頭。
意義
用於計算機領域的一種重要的數制。
對計算機理論的描述,計算機硬體電路的設計都是很有益的。比如邏輯電路設計中,既要考慮功能的完備,還要考慮用儘可能少的硬體,十六進制就能起到一些理論分析的作用。比如四位二進制電路,最多就是十六種狀態,也就是一種十六進制形式,只有這十六種狀態都被用上了或者儘可能多的被用上,硬體資源才發揮了儘可能大的作用。
十六進制更簡短,因為換算的時候一位16進制數可以頂4位2進制數。
你可以在二進制前加幾個0,意義不變。
二進制 | 八進制 | 十進制 | 十六進制 |
0 1 | 0 1 | 0 1 | 0 1 |
10 | 2 | 2 | 2 |
11 | 3 | 3 | 3 |
100 | 4 | 4 | 4 |
101 | 5 | 5 | 5 |
110 | 6 | 6 | 6 |
111 | 7 | 7 | 7 |
1000 | 10 | 8 | 8 |
1001 | 11 | 9 | 9 |
1010 | 12 | 10 | A |
1011 | 13 | 11 | B |
1100 | 14 | 12 | C |
1101 | 15 | 13 | D |
1110 | 16 | 14 | E |
1111 | 17 | 15 | F |
10000 | 20 | 16 | 10 |
10001 | 21 | 17 | 11 |
10010 | 22 | 18 | 12 |
10011 | 23 | 19 | 13 |
10100 | 24 | 20 | 14 |
10101 | 25 | 21 | 15 |
10110 | 26 | 22 | 16 |
10111 | 27 | 23 | 17 |
11000 | 30 | 24 | 18 |
11001 | 31 | 25 | 19 |
11010 | 32 | 26 | 1A |
11011 | 33 | 27 | 1B |
11100 | 34 | 28 | 1C |
11101 | 35 | 29 | 1D |
11110 | 36 | 30 | 1E |
11111 | 37 | 31 | 1F |
100000 | 40 | 32 | 20 |
100001 | 41 | 33 | 21 |
100010 | 42 | 34 | 22 |
100011 | 43 | 35 | 23 |
100100 | 44 | 36 | 24 |
100101 | 45 | 37 | 25 |
100110 | 46 | 38 | 26 |
100111 | 47 | 39 | 27 |
101000 | 50 | 40 | 28 |
101001 | 51 | 41 | 29 |
101010 | 52 | 42 | 2A |
101011 | 53 | 43 | 2B |
101100 | 54 | 44 | 2C |
101101 | 55 | 45 | 2D |
101110 | 56 | 46 | 2E |
101111 | 57 | 47 | 2F |
110000 | 60 | 48 | 30 |
110001 | 61 | 49 | 31 |
110010 | 62 | 50 | 32 |
110011 | 63 | 51 | 33 |
110100 | 64 | 52 | 34 |
110101 | 65 | 53 | 35 |
110110 | 66 | 54 | 36 |
110111 | 67 | 55 | 37 |
111000 | 70 | 56 | 38 |
111001 | 71 | 57 | 39 |
111010 | 72 | 58 | 3A |
111011 | 73 | 59 | 3B |
111100 | 74 | 60 | 3C |
111101 | 75 | 61 | 3D |
111110 | 76 | 62 | 3E |
111111 | 77 | 63 | 3F |
1000000 | 100 | 64 | 40 |
1000001 | 101 | 65 | 41 |
1000010 | 102 | 66 | 42 |
1000011 | 103 | 67 | 43 |
1000100 | 104 | 68 | 44 |
1000101 | 105 | 69 | 45 |
1000110 | 106 | 70 | 46 |
1000111 | 107 | 71 | 47 |
1001000 | 110 | 72 | 48 |
1001001 | 111 | 73 | 49 |
1001010 | 112 | 74 | 4A |
1001011 | 113 | 75 | 4B |
1001100 | 114 | 76 | 4C |
1001101 | 115 | 77 | 4D |
1001110 | 116 | 78 | 4E |
1001111 | 117 | 79 | 4F |
1010000 | 120 | 80 | 50 |
1010001 | 121 | 81 | 51 |
1010010 | 122 | 82 | 52 |
1010011 | 123 | 83 | 53 |
1010100 | 124 | 84 | 54 |
1010101 | 125 | 85 | 55 |
1010110 | 126 | 86 | 56 |
1010111 | 127 | 87 | 57 |
1011000 | 130 | 88 | 58 |
1011001 | 131 | 89 | 59 |
1011010 | 132 | 90 | 5A |
1011011 | 133 | 91 | 5B |
1011100 | 134 | 92 | 5C |
1011101 | 135 | 93 | 5D |
1011110 | 136 | 94 | 5E |
1011111 | 137 | 95 | 5F |
1100000 | 140 | 96 | 60 |
1100001 | 141 | 97 | 61 |
1100010 | 142 | 98 | 62 |
1100011 | 143 | 99 | 63 |
1100100 | 144 | 100 | 64 |