Here's another example to determine the value of the octal number 16018:

Octal Addition

Octal addition is performed just like decimal addition, except that if a column of two addends produces a sum greater than 7, you must subtract 8 from the result, put down that result, and carry the 1. Remember that there are no such digits as "8" and "9" in the octal system, and that 8_{10} = 10_{8}, 9_{10} = 11_{8}, etc.

Example 1: Add 543_{8} + 121_{8} (no carry required):

Example 2: Add 7652_{8} + 4574_{8} (carries required):

Hexadecimal System

It is usually difficult for a person to look at a binary number and instantly recognize its magnitude. Unless you are quite experienced at using binary numbers, recognizing the relative magnitudes of 10101101_{2} and 10100101_{2} is not immediate (173_{10} is greater than 165_{10}). Nor is it immediately apparent to us that 1001101101_{2} equals 621_{10} without going through the process of calculating 512 + 64 + 32 + 8 + 4 + 1. There is another problem: we are prone to creating errors when writing or typing binary numbers. As a quick exercise, write the binary number 1001011111101101001000111_{2} onto a sheet of paper. Did you make a mistake? Most people would have made at least one error. To make the binary representation of numbers easier on us humans, there is a shorthand representation for binary values. It begins by partitioning a binary number into its nibbles starting at the least significant bit (LSB). An example is shown below:

The number: 1001011110110100100111 can be divided into: 10 0101 1110 1101 0010 0111

Next, a symbol is used to represent each of the possible combinations of bits in a nibble. We start by numbering them with the decimal values equivalent to their binary value, i.e.:

0000_{2} = 0_{10}

0001^{2 }= 1_{10}

0010_{2} = 2_{10}

: : :

1000_{2} = 8_{10}

1001_{2} = 9_{10}

At 9, however, we run out of decimal characters. There are six more nibbles to label, so we begin using letters: A, B, C, D, E, and F. These represent the decimal values 10_{10}, 11_{10}, 12_{10}, 13_{10}, 14_{10}, and 15_{10} respectively.

Another way to look at it is that hexadecimal counting is also similar to decimal except that instead of having 10 numerals, it has sixteen. This is also referred to as a base-16 numbering system. How do we convert binary to hexadecimal? Begin by dividing the binary number into its nibbles (if the number of bits is not divisible by 4, add leading zeroes), then nibble-by-nibble use the table above to find the hexadecimal equivalent to each 4-bit pattern. For example:

The number: 1001011110110100100111 is divided into: 0010 0101 1110 1101 0010 0111 .which translates to: 2 5 E D 2 7. Therefore, 10010111101101001001112 = 25ED27_{16}. Notice the use of the subscript "16" to denote hexadecimal representation. Going the other way is just as easy. Translating 5D3F21_{16} to binary goes something like this: The hexadecimal value: 5 D 3 F 2 1 translates to: 0101 1101 0011 1111 0010 0001.

It is vital to note that computers do not use hexadecimal, humans do. Hexadecimal provides humans with a reliable, short-hand method of writing large binary numbers.

For reference, the following table shows the decimal numbers 0 through 31 with their hexadecimal equivalents: