How to Convert Between Number Systems: decimal, binary, hexadecimal and IPs

This appendix provides information concerning the following topics:


Now that we have covered how to count (in Appendix A), we need to be able to convert between the three different number systems. This is another skill that takes time and practice to become comfortable using, and it is a skill that can quickly be lost without usage.

Remember that in the binary number system, we use 2 as our base number, giving us a chart that looks like this:

210 29 28 27 26 25 24 23 22 21 20
1 024 512 256 128 64 32 16 8 4 2 1

Tip

Re-create this chart right before taking an exam. It is quick to write out on a piece of paper (or the erasable board you get in a vendor exam) and will help you with your addition. I have seen many students lose marks because of simple addition errors.

Each of these numbers represents a bit that has been turned on; that is, represented by a 1 in a bit pattern. So, to convert a decimal number to binary, you must add up these numbers to equal the decimal number—those numbers are then turned on and converted to 1 in the pattern:

1200 = 1024 + 128 + 32 + 16 = 10010110000
755 = 512 + 128 + 64 + 32 + 16 + 2 + 1 = 1011110011
500 = 256 + 128 + 64 + 32 + 16 + 4 = 111110100
233 = 128 + 64 + 32 + 8 + 1 = 11101001
187 = 128 + 32 + 16 + 8 + 2 + 1 = 10111011
160 = 128 + 32 = 10100000
95 = 64 + 16 + 8 + 4 + 2 + 1 = 1011111
27 = 16 + 8 + 2 + 1 = 11011

In IPv4, we use 32 bits to represent an IP address. These 32 bits are broken down into four groups of 8 bits. Each group is called an octet. You should become very comfortable with working with octets and being able to convert decimal into octets and vice versa. When working with octets, it is customary to insert leading 0s in their placeholders so that all positions in the octet are represented:

95 = 64 + 16 + 8 + 4 + 2 + 1 = 01011111
27 = 16 + 8 + 2 + 1 = 00011011

Some numbers are used over and over again in IPv4 addresses, so these conversions will be easy to remember:

27 26 25 24 23 22 21 20
Decimal # 128 64 32 16 8 4 2 1 = Binary #
0 = 0 0 0 0 0 0 0 0 = 00000000
1 = 0 0 0 0 0 0 0 1 = 00000001
64 = 0 1 0 0 0 0 0 0 = 01000000
128 = 1 0 0 0 0 0 0 0 = 10000000
192 = 1 1 0 0 0 0 0 0 = 11000000
224 = 1 1 1 0 0 0 0 0 = 11100000
240 = 1 1 1 1 0 0 0 0 = 11110000
248 = 1 1 1 1 1 0 0 0 = 11111000
252 = 1 1 1 1 1 1 0 0 = 11111100
254 = 1 1 1 1 1 1 1 0 = 11111110
255 = 1 1 1 1 1 1 1 1 11111111

When converting binary numbers to decimal, we need to use the base-2 chart just like when converting decimal to binary:

210 29 28 27 26 25 24 23 22 21 20
1 024 512 256 128 64 32 16 8 4 2 1

Tip

Re-create this chart right before taking an exam. It is quick to write out on a piece of paper (or the erasable board you get in a vendor exam) and will help you with your addition. I have seen many students lose marks because of simple addition errors.

Using this chart as our guide, we add up all the numbers that are represented by a 1 in the binary pattern to convert it to a decimal number:

101011110000 = 1024 + 256 + 64 + 32 + 16 + 8 = 1400
1011110011 = 512 + 128 + 64 + 32 + 16 + 2 + 1 = 755
111100010 = 256 + 128 + 64 + 32 + 2 = 482
11100100 = 128 + 64 + 32 + 4 = 228
10111010 = 128 + 32 + 16 + 8 + 2 = 186
10101010 = 128 + 32 + 8 + 2 = 170
1001101 = 64 + 8 + 4 + 1 = 77
1101 = 8 + 4 + 1 = 13

Again, we use leading 0s in order to form octets:

01001101 = 64 + 8 + 4 + 1 = 77
00001101 = 8 + 4 + 1 = 13

To convert a decimal IP address to binary, we need to take each individual number and convert it to binary:

192.168.10.1
192 = 11000000
168 = 10101000
10 = 00001010
1 = 00000001
= 11000000 10101000 00001010 00000001
172.16.100.254
172 = 10101100
16 = 00010000
100 = 01100100
254 = 11111110
= 10101100 00010000 01100100 11111110

Tip

When writing out IP addresses in binary, it is customary to put either a space or a period between the octets:

10101100 00010000 01100100 11111110 or 10101100.00010000.01100100.11111110

To convert a binary IP address to decimal, we need to take each individual binary number and convert it to decimal:

11000000 10101000 01100100 11110011
11000000 = 192
10101000 = 168
01100100 = 100
1111011 = 243
= 192.168.100.243
00001010 10010110 01100000 00000001
00001010 = 10
10010110 = 150
01100000 = 96
00000001 = 1
= 10.150.96.1

In the IPv4 addressing scheme, there are 232 potential unique addresses that are mathematically possible. If we didn’t use the dotted-decimal format of breaking down 32-bit address into four groups of 8 bits, we may have to use numbers like 3,232,238,081 for 192.168.10.1, or 84,215,041 instead of 10.10.10.1. Which would be easier for you to remember?

This is a conversion that you will be using more than converting hex to decimal. It is very simple to do. Each hex digit can be represented by four binary digits using the following table:

Hex Binary
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Tip

Re-create this chart right before taking an exam. It is quick to write out on a piece of paper (or the erasable board you get in a vendor exam) and will help you with your conversions. I have seen many students lose marks because of simple errors.

When converting hex to binary, it is customary to convert pairs of hex digits to binary octets, as shown in Example 1.

Step 1 C = 1100
Step 2 9 = 1001
Therefore C9 = 11001001

If there is an uneven number of hex digits to make a complete octet, put a leading 0 at the beginning of the hex number, as shown in Example 2.

Step 1 D = 1101
Step 2 B = 1011
Step 3 8 = 1000
Therefore DB8 = 00001101 10111000

Note

Leading 0s are used to complete the first octet (DB8 = 0DB8)

This is also a conversion that you will be using more than converting decimal to hex. Using the same table as shown in the preceding section, convert each octet of binary to a pair of hex digits, as shown in Example 3.

Step 1 1100 = C
Step 2 0101 = 5
Therefore 11000101 = C5

If there is an uneven number of binary digits to make a complete octet, put one or more leading 0s at the beginning of the binary number, as shown in Example 4.

Step 1 1111 = F
Step 2 1111 = F
Step 3 0101 = 5
Step 4 Because there aren’t enough hex digits to make a complete pair, add leading 0s to complete the pair. In this case, add 0000 to the beginning of the number.
Therefore 0000111111110101 = 0F F5

Note

Leading 0s are used to complete the first octet (0FF5 = FF5)

Tip

Although it takes an extra step, I find it faster to convert hexadecimal digits to binary and then binary to decimal. I can add and subtract faster than multiplying and dividing by 16s.

Example 5 shows the process for converting an entire IP address from hex to decimal.

Step 1 C0 = 11000000 = 192
Step 2 A8 = 10101000 = 168
Step 3 01 = 00000001 = 1
Step 4 01 = 00000001 = 1
Therefore C0A80101HEX = 192.168.1.1

IPv4 addresses are not usually represented in hexadecimal; an exception is when you are capturing traffic with software such as Wireshark, which shows all traffic in hex.

Although this type of conversion is not used very often, you should still understand how to convert a decimal number to a hexadecimal number. To do this conversion, you have to use long division while leaving the remainders in integer form—do not use decimal answers!

The steps involved are as follows:

  1. Divide the decimal number by 16. Leave the remainder in integer form (no decimals).

    Write down the remainder in hexadecimal form.

  2. Divide the result from step 1 by 16.

    Write down the remainder in hexadecimal form.

  3. Repeat this process until you are left with an answer of 0.

    If there is a remainder, write that down in hexadecimal form.

  4. The hex value is the sequence of remainders from the last one to the first one.

Examples 6, 7, and 8 show how to convert decimal numbers to hexadecimal.

Step 1 188 / 16 = 11 with a remainder of 12 12 in hex is C
Step 2 11 / 16 = 0 with a remainder of 11 11 in hex is B
Therefore 18810 = BCHEX
Step 1 255 / 16 = 15 with a remainder of 15 15 in hex is F
Step 2 15 / 16 = 0 with a remainder of 15 15 in hex is F
Therefore 25510 = FFHEX
Step 1 1234 / 16 = 77 with a remainder of 2 2 in hex is 2
Step 2 77 / 16 = 4 with a remainder of 13 13 in hex is D
Step 3 4 / 16 = 0 with a remainder of 4 4 in hex is 4
Therefore 123410 = 4D2HEX

This is also a type of conversion that isn’t used very often. This time we will be multiplying by powers of 16 to convert hexadecimal numbers to decimal.

The steps involved are as follows:

  1. Take the last digit (also known as the least significant digit) in the hexadecimal number and multiply it by 160. Put this number off to the side for right now.

    Remember that 160 = 1, so you are multiplying this digit by 1.

  2. Take the second-to-last digit in the hex number and multiply it by 161. Also put this number off to the side.

    You are multiplying this digit by 16.

  3. Continue multiplying the digits with increasing powers of 16 until you are finished multiplying all of the individual hexadecimal digits.

  4. Add up all of the results from your multiplications and you have your answer in decimal.

Examples 9 through 11 show you how to convert a hexadecimal number to decimal.

Step 1 3 × 160 = 3 × 1 = 3
Step 2 C × 161 = 12 × 16 = 192
Therefore C3HEX = 195
Step 1 6 × 160 = 6 × 1 = 6
Step 2 7 × 161 = 7 × 16 = 112
Step 3 2 × 162 = 2 × 256 = 512
Therefore 276HEX = 630
Step 1 E × 160 = 14 × 1 = 14
Step 2 C × 161 = 12 × 16 = 192
Step 3 A × 162 = 10 × 256 = 2560
Step 4 F × 163 = 15 × 4096 = 61 440
Therefore FACEHEX = 64 206

The following chart lists the three most common number systems used in networking: decimal, hexadecimal, and binary. Some numbers you will remember quite easily, as you use them a lot in your day-to-day activities. For those other numbers, refer to this chart.

Decimal Value Hexadecimal Value Binary Value
0 00 0000 0000
1 01 0000 0001
2 02 0000 0010
3 03 0000 0011
4 04 0000 0100
5 05 0000 0101
6 06 0000 0110
7 07 0000 0111
8 08 0000 1000
9 09 0000 1001
10 0A 0000 1010
11 0B 0000 1011
12 0C 0000 1100
13 0D 0000 1101
14 0E 0000 1110
15 0F 0000 1111
16 10 0001 0000
17 11 0001 0001
18 12 0001 0010
19 13 0001 0011
20 14 0001 0100
21 15 0001 0101
22 16 0001 0110
23 17 0001 0111
24 18 0001 1000
25 19 0001 1001
26 1A 0001 1010
27 1B 0001 1011
28 1C 0001 1100
29 1D 0001 1101
30 1E 0001 1110
31 1F 0001 1111
32 20 0010 0000
33 21 0010 0001
34 22 0010 0010
35 23 0010 0011
36 24 0010 0100
37 25 0010 0101
38 26 0010 0110
39 27 0010 0111
40 28 0010 1000
41 29 0010 1001
42 2A 0010 1010
43 2B 0010 1011
44 2C 0010 1100
45 2D 0010 1101
46 2E 0010 1110
47 2F 0010 1111
48 30 0011 0000
49 31 0011 0001
50 32 0011 0010
51 33 0011 0011
52 34 0011 0100
53 35 0011 0101
54 36 0011 0110
55 37 0011 0111
56 38 0011 1000
57 39 0011 1001
58 3A 0011 1010
59 3B 0011 1011
60 3C 0011 1100
61 3D 0011 1101
62 3E 0011 1110
63 3F 0011 1111
64 40 0100 0000
65 41 0100 0001
66 42 0100 0010
67 43 0100 0011
68 44 0100 0100
69 45 0100 0101
70 46 0100 0110
71 47 0100 0111
72 48 0100 1000
73 49 0100 1001
74 4A 0100 1010
75 4B 0100 1011
76 4C 0100 1100
77 4D 0100 1101
78 4E 0100 1110
79 4F 0100 1111
80 50 0101 0000
81 51 0101 0001
82 52 0101 0010
83 53 0101 0011
84 54 0101 0100
85 55 0101 0101
86 56 0101 0110
87 57 0101 0111
88 58 0101 1000
89 59 0101 1001
90 5A 0101 1010
91 5B 0101 1011
92 5C 0101 1100
93 5D 0101 1101
94 5E 0101 1110
95 5F 0101 1111
96 60 0110 0000
97 61 0110 0001
98 62 0110 0010
99 63 0110 0011
100 64 0110 0100
101 65 0110 0101
102 66 0110 0110
103 67 0110 0111
104 68 0110 1000
105 69 0110 1001
106 6A 0110 1010
107 6B 0110 1011
108 6C 0110 1100
109 6D 0110 1101
110 6E 0110 1110
111 6F 0110 1111
112 70 0111 0000
113 71 0111 0001
114 72 0111 0010
115 73 0111 0011
116 74 0111 0100
117 75 0111 0101
118 76 0111 0110
119 77 0111 0111
120 78 0111 1000
121 79 0111 1001
122 7A 0111 1010
123 7B 0111 1011
124 7C 0111 1100
125 7D 0111 1101
126 7E 0111 1110
127 7F 0111 1111
128 80 1000 0000
129 81 1000 0001
130 82 1000 0010
131 83 1000 0011
132 84 1000 0100
133 85 1000 0101
134 86 1000 0110
135 87 1000 0111
136 88 1000 1000
137 89 1000 1001
138 8A 1000 1010
139 8B 1000 1011
140 8C 1000 1100
141 8D 1000 1101
142 8E 1000 1110
143 8F 1000 1111
144 90 1001 0000
145 91 1001 0001
146 92 1001 0010
147 93 1001 0011
148 94 1001 0100
149 95 1001 0101
150 96 1001 0110
151 97 1001 0111
152 98 1001 1000
153 99 1001 1001
154 9A 1001 1010
155 9B 1001 1011
156 9C 1001 1100
157 9D 1001 1101
158 9E 1001 1110
159 9F 1001 1111
160 A0 1010 0000
161 A1 1010 0001
162 A2 1010 0010
163 A3 1010 0011
164 A4 1010 0100
165 A5 1010 0101
166 A6 1010 0110
167 A7 1010 0111
168 A8 1010 1000
169 A9 1010 1001
170 AA 1010 1010
171 AB 1010 1011
172 AC 1010 1100
173 AD 1010 1101
174 AE 1010 1110
175 AF 1010 1111
176 B0 1011 0000
177 B1 1011 0001
178 B2 1011 0010
179 B3 1011 0011
180 B4 1011 0100
181 B5 1011 0101
182 B6 1011 0110
183 B7 1011 0111
184 B8 1011 1000
185 B9 1011 1001
186 BA 1011 1010
187 BB 1011 1011
188 BC 1011 1100
189 BD 1011 1101
190 BE 1011 1110
191 BF 1011 1111
192 C0 1100 0000
193 C1 1100 0001
194 C2 1100 0010
195 C3 1100 0011
196 C4 1100 0100
197 C5 1100 0101
198 C6 1100 0110
199 C7 1100 0111
200 C8 1100 1000
201 C9 1100 1001
202 CA 1100 1010
203 CB 1100 1011
204 CC 1100 1100
205 CD 1100 1101
206 CE 1100 1110
207 CF 1100 1111
208 D0 1101 0000
209 D1 1101 0001
210 D2 1101 0010
211 D3 1101 0011
212 D4 1101 0100
213 D5 1101 0101
214 D6 1101 0110
215 D7 1101 0111
216 D8 1101 1000
217 D9 1101 1001
218 DA 1101 1010
219 DB 1101 1011
220 DC 1101 1100
221 DD 1101 1101
222 DE 1101 1110
223 DF 1101 1111
224 E0 1110 0000
225 E1 1110 0001
226 E2 1110 0010
227 E3 1110 0011
228 E4 1110 0100
229 E5 1110 0101
230 E6 1110 0110
231 E7 1110 0111
232 E8 1110 1000
233 E9 1110 1001
234 EA 1110 1010
235 EB 1110 1011
236 EC 1110 1100
237 ED 1110 1101
238 EE 1110 1110
239 EF 1110 1111
240 F0 1111 0000
241 F1 1111 0001
242 F2 1111 0010
243 F3 1111 0011
244 F4 1111 0100
245 F5 1111 0101
246 F6 1111 0110
247 F7 1111 0111
248 F8 1111 1000
249 F9 1111 1001
250 FA 1111 1010
251 FB 1111 1011
252 FC 1111 1100
253 FD 1111 1101
254 FE 1111 1110
255 FF 1111 1111

Вас заинтересует / Intresting for you:

How to Count in Decimal, Binar...
How to Count in Decimal, Binar... 543 views Валерий Павлюков Wed, 09 Feb 2022, 16:27:19
Subnetting a Class B Network U...
Subnetting a Class B Network U... 3814 views Андрей Волков Sun, 14 Feb 2021, 08:11:41
Subnetting a Class C Network U...
Subnetting a Class C Network U... 4269 views Андрей Волков Sun, 14 Feb 2021, 07:48:28
Binary ANDing: multiplication ...
Binary ANDing: multiplication ... 2383 views Андрей Волков Sun, 14 Feb 2021, 08:38:30
Comments (0)
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Suggested Locations