Hexadecimal
In mathematics, hexadecimal or simply hex is a numeral system with a radix or base of 16 , usually written using the symbols 0-9 and A-F or a-f. It is a useful system in computers because there is an easy mapping from four bits to a single hex digit. A byte can be represented as two consecutive hexadecimal digits.
For example, the decimal numeral 79 whose binary representation is 01001111 can be written as 4F in hexadecimal (4 = 0100, F = 1111). In some representations, the characters ~, !, @, #, $ and % are used instead of ABCDEF (respectively).
Representing hexadecimal
| hex | bin | dec |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| A (~) | 1010 | 10 |
| B (!) | 1011 | 11 |
| C (@) | 1100 | 12 |
| D (#) | 1101 | 13 |
| E ($) | 1110 | 14 |
| F (%) | 1111 | 15 |
There are many ways to denote hexadecimal numerals:
- Ada and VHDL enclose hexadecimal numerals in based "numeric quotes", e.g. "16#5A3#". (Note: Ada accepts this notation for all bases from 2 through 16 and for both integer and real types.)
- C and languages with a similar syntax (such as C++ and Java) prefix hexadecimal numerals with '0x', e.g. "0x5A3". The leading '0' is used so that the parser can simply recognize a number, and the 'x' stands for hexadecimal (c.f. O for Octal).
- in HTML, hexadecimal character references also use the x: ֣ should give the same as ֣ -- with your browser ֣ and ֣ respectively (Hebrew accent munah).
- Pascal and some Assemblers indicate hex by an appended 'h' (if the numeral starts with a letter, then also with a preceding 0), e.g., "0A3Ch", "5A3h".
- Other assemblers (AT&T, Motorola) and some versions of BASIC use a prefixed '$', e.g. "$5A3".
- Some versions of BASIC prefix hexadecimal numerals with "&h", e.g. "&h5A3".
- Notations such as
X'5A3'are sometimes seen; PL/I uses such notation. - When talking about numeral systems other than base-10, or numerals in multiple bases, mathematicians write the base in subscript after the number, e.g. "5A316" or "5A3SIXTEEN".
There is no single agreed-upon standard, so all the above conventions are in use, sometimes even in the same paper. However, as they are quite unambiguous, little difficulty arises from this.
The word "hexadecimal" is strange in that hexa is derived from the Greek έξι (hexi) for "six" and decimal is derived from the Latin for "ten". An older term was the pure Latin "sexidecimal", but that was changed because some people thought it too risque, and it also had an alternative meaning of "base 60". However, the word "sexagesimal" (base-60) retains the prefix.
A common use of hexadecimal numerals is found in web programming. The languages HTML and CSS use hexadecimal notation to specify colors on web pages; there is just the # symbol, not a separate symbol for "hexadecimal". 24-bit color is represented in the format #RRGGBB, where RR specifies the value of the Red component of the color, GG the Green component and BB the Blue component. E.g., a shade of red that is 238,9,63 in decimal is coded as #EE093F. See Web colors.
In URLs special characters can be coded hexadecimally in ASCII with for each byte a percent sign (%) in front, e.g. http://en.wikipedia.org/wiki/Main%20Page
Fractions
As with other numeral systems, the hexadecimal system can be used in forming fractions, although recurring decimals are common:
| 1/2 | = | 0.8 |
| 1/3 | = | 0.5555 recurring |
| 1/4 | = | 0.4 |
| 1/5 | = | 0.3333 recurring |
| 1/6 | = | 0.2AAAA recurring |
| 1/8 | = | 0.2 |
| 1/A | = | 0.19999 recurring |
| 1/C | = | 0.15555 recurring |
| 1/F | = | 0.1111 recurring |
Because the radix 16 is a square (42), hexadecimal fractions have an odd period much more often than decimal ones. Recurring decimals occur when the denominator in lowest terms has a prime factor not found in the radix. In the case of hexadecimal numbers, all fractions with denominators that are not a power of two will result in a recurring decimal.
See also
- numeral system for a list of other base systems.
- hexspeak
- hex triplets
- Nibble (1 hexadecimal digit can exactly represent 1 Nibble)
External link
- Intuitor Hex Headquarters (http://www.intuitor.com/hex/) - A site dedicated to changing the traditional base 10 (decimal) standard to hexadecimal.
- finalgates.ath.cx (http://finalgates.ath.cx/~rahmi/math/DecToHex.txt) - A guide through decimal to hexadecimal, and decimal to binary.
da:Hexadecimale talsystem
de:Hexadezimalsystem
eo:Deksesuma
fr:Système hexadécimal
ko:16진수
it:Sistema numerico esadecimale
he:בסיס הקסדצימלי
nl:Hexadecimaal
ja:十六進記数法
no:Sekstentallsystemet
pl:Szesnastkowy system liczbowy
ru:Шестнадцатеричная система счисления
fi:Heksadesimaalijärjestelmä
sl:Šestnajstiški_številski_sistem
zh-cn:十六进制