98 lines
1.8 KiB
Markdown
98 lines
1.8 KiB
Markdown
![]() |
# hexadecimal
|
||
|
|
||
|
the hexadecimal numeral system differs from the decimal system by having 16 digits rather than 10:
|
||
|
|
||
|
```
|
||
|
hex| decimal
|
||
|
---|---------
|
||
|
`0`| 0
|
||
|
`1`| 1
|
||
|
`2`| 2
|
||
|
`3`| 3
|
||
|
`4`| 4
|
||
|
`5`| 5
|
||
|
`6`| 6
|
||
|
`7`| 7
|
||
|
`8`| 8
|
||
|
`9`| 9
|
||
|
`A`| 10
|
||
|
`B`| 11
|
||
|
`C`| 12
|
||
|
`D`| 13
|
||
|
`E`| 14
|
||
|
`F`| 15
|
||
|
```
|
||
|
|
||
|
when there is more than one digit, these are multiplied by 16, 256, 4096 and so on rather than 10, 100, 1000:
|
||
|
|
||
|
```
|
||
|
hex | decimal
|
||
|
----|---------
|
||
|
`00`| 0
|
||
|
`04`| 4
|
||
|
`08`| 8
|
||
|
`0F`| 15
|
||
|
`10`| 16
|
||
|
`11`| 17
|
||
|
`12`| 18
|
||
|
`13`| 19
|
||
|
`20`| 32
|
||
|
`30`| 48
|
||
|
`40`| 64
|
||
|
```
|
||
|
|
||
|
# hex to decimal
|
||
|
|
||
|
for example, take hexadecimal number `AA`:
|
||
|
|
||
|
```
|
||
|
2nd digit -\ /- 1st digit
|
||
|
A A
|
||
|
16^1*10 = 16*10 = 160 + 10 = 170
|
||
|
```
|
||
|
|
||
|
now for hexadecimal number `4C5F`:
|
||
|
|
||
|
```
|
||
|
|
||
|
3rd digit -\ /- 2nd digit
|
||
|
4th digit -\ | | /- 1st digit
|
||
|
4 C 5 F
|
||
|
| | | |
|
||
|
| | | 15 = 15 = 15 +
|
||
|
| | \16^1*5 = 16 * 5 = 80
|
||
|
| \--- 16^2*12 = 256 * 12 = 3072
|
||
|
\--------- 16^3*4 = 4096 * 4 = 16384
|
||
|
-------
|
||
|
= 19551
|
||
|
```
|
||
|
|
||
|
# decimal to hex
|
||
|
|
||
|
if it's less than 16, just memorize the table at the top of this document.
|
||
|
|
||
|
otherwise find the power of 16 that is closest to the number you want to convert, but no larger than the number.
|
||
|
then divide, and take the remainder.
|
||
|
divide the remainder with the previous power of 16, until the divider is 1.
|
||
|
|
||
|
for example, for the decimal number `220`:
|
||
|
|
||
|
```
|
||
|
220 ÷ 16 = 13 (r = 12) D
|
||
|
12 ÷ 1 = 12 (stop here) C
|
||
|
|
||
|
= DC
|
||
|
```
|
||
|
|
||
|
now for decimal number `69420`:
|
||
|
|
||
|
```
|
||
|
69420 ÷ 65536 = 1 (r = 3884) 1
|
||
|
3884 ÷ 4096 = 0 (r = 3884) 0
|
||
|
3884 ÷ 256 = 15 (r = 44) F
|
||
|
44 ÷ 16 = 2 (r = 12) 2
|
||
|
12 ÷ 1 = 12 (stop here) C
|
||
|
|
||
|
= 10F2C
|
||
|
```
|