Перевод Десятичного числа в Двоичное
Мало того, что мы должны быть в состоянии преобразовать двоичное число в десятичное, мы также должны уметь переводить десятичное число в двоичное. Часто приходиться исследовать отдельный октет адреса, который дается в десятичном представлении с разделительными точками. Например, это необходимо, когда сетевые биты и хостовые биты делят октет.

К примеру, если бы узел с 172.16.4.20 использовал 28 битов для сетевого адреса, мы должны были бы исследовать двоичное число в последнем октете, чтобы определить, что этот узел находится в сети 172.16.4.16. Этот процесс извлечения сетевого адреса из полного адреса узла будет объяснен позже.
Значения адреса Между 0 и 255
Поскольку наше представление адресов ограничивается десятичными значениями для одного октета, мы исследуем только процесс преобразования 8-разрядного двоичного числа к десятичным значениям от 0 до 255.
Чтобы начать процесс преобразования, мы начинаем с определения, равно ли или больше десятичное число чем самое большое десятичное значение, представляемое старшим значащим битом. В самой старшей позиции (или 128-разрядной позиции, поскольку 2^7=128) мы определяем, равно ли или больше значение чем 128. Если значение меньше чем 128, мы помещаем 0 в 128-разрядную позицию и переходим к 64-разрядной позиции.
Если значение больше или равно 128, мы помещаем 1 в 128-разрядную позицию и вычитаем 128 из преобразовываемого числа. Затем сравниваем остаток от этой операции со следующим меньшим значением, т.е. 64. Мы продолжаем этот процесс для всех оставшихся позиций.
См. рисунок, на котором изображен пример этих шагов. Мы преобразовываем 172 в 10101100.

Смотрите шаги преобразования, чтобы увидеть, как IP-адрес преобразовывается в двоичное число.

Итоги по Преобразованиям
Рисунок подводит итог полного преобразования 172.16.4.20 из десятичного представления с разделительными точками в двоичную запись.