Задача: Напиши 32-битовый IP-адрес в виде четырёх десятичных чисел.
Дан IP-адрес в двоичном виде:
01100111.10010100.00011110.01111010
Решение:
Чтобы перевести 32-битовый IP-адрес из двоичного вида в десятичный, нужно каждый из четырёх восьмибитовых блоков (октетов) перевести отдельно.
Вспомним, как переводить двоичное число в десятичное:
Каждая цифра в двоичном числе (бит) умножается на 2 в степени, соответствующей её позиции, начиная с 0 справа налево. Затем все полученные значения складываются.
1. Переводим первый октет: 01100111
\[0 \cdot 2^7 + 1 \cdot 2^6 + 1 \cdot 2^5 + 0 \cdot 2^4 + 0 \cdot 2^3 + 1 \cdot 2^2 + 1 \cdot 2^1 + 1 \cdot 2^0\]
\[0 \cdot 128 + 1 \cdot 64 + 1 \cdot 32 + 0 \cdot 16 + 0 \cdot 8 + 1 \cdot 4 + 1 \cdot 2 + 1 \cdot 1\]
\[0 + 64 + 32 + 0 + 0 + 4 + 2 + 1 = 103\]
Первое число: 103
2. Переводим второй октет: 10010100
\[1 \cdot 2^7 + 0 \cdot 2^6 + 0 \cdot 2^5 + 1 \cdot 2^4 + 0 \cdot 2^3 + 1 \cdot 2^2 + 0 \cdot 2^1 + 0 \cdot 2^0\]
\[1 \cdot 128 + 0 \cdot 64 + 0 \cdot 32 + 1 \cdot 16 + 0 \cdot 8 + 1 \cdot 4 + 0 \cdot 2 + 0 \cdot 1\]
\[128 + 0 + 0 + 16 + 0 + 4 + 0 + 0 = 148\]
Второе число: 148
3. Переводим третий октет: 00011110
\[0 \cdot 2^7 + 0 \cdot 2^6 + 0 \cdot 2^5 + 1 \cdot 2^4 + 1 \cdot 2^3 + 1 \cdot 2^2 + 1 \cdot 2^1 + 0 \cdot 2^0\]
\[0 \cdot 128 + 0 \cdot 64 + 0 \cdot 32 + 1 \cdot 16 + 1 \cdot 8 + 1 \cdot 4 + 1 \cdot 2 + 0 \cdot 1\]
\[0 + 0 + 0 + 16 + 8 + 4 + 2 + 0 = 30\]
Третье число: 30
4. Переводим четвёртый октет: 01111010
\[0 \cdot 2^7 + 1 \cdot 2^6 + 1 \cdot 2^5 + 1 \cdot 2^4 + 1 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 0 \cdot 2^0\]
\[0 \cdot 128 + 1 \cdot 64 + 1 \cdot 32 + 1 \cdot 16 + 1 \cdot 8 + 0 \cdot 4 + 1 \cdot 2 + 0 \cdot 1\]
\[0 + 64 + 32 + 16 + 8 + 0 + 2 + 0 = 122\]
Четвёртое число: 122
Ответ:
103.148.30.122
