Binary is what the computer works in, but humans tend to be a bit put off by all those 1's and 0's. As such, when viewing bytes of data, programmers prefer to see the hexadecimal view. Hexadecimal is base 16. This means that there are 16 values for each digit. As we only have 9 numbers we must start using letters. So we get the following -

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

But why is this useful? Why can we not just convert binary back to decimal? The reason is because binary to hexadecimal is much easier to convert. Also programmers tend to sift through large amounts of binary data and as such require a more suitable view than binary. Two hexadecimal values represent a single byte. Consider the byte

1010 0011

This is two groups of four bits. The largest value you can store in four bits is sixteen or a single hexadecimal value. As such a byte of data can be represented by two hexadecimal values.

The decimal value for 1010 is 10 while 0011 is 3. As such the hexadecimal value for these will be A3.

Lets look at another byte. 1110 1001.

1110 = (1 x 2^3) + (1 x 2^2) + (1 x 2^1) + (0 x 2^0) = E

1001 = (1 x 2^3) + (0 x 2^2) + (0 x 2^1) + (0 x 2^0) = 9

So the hexadecimal value for this is E9.