Как перевести ip адрес в двоичную систему
Перейти к содержимому

Как перевести ip адрес в двоичную систему

  • автор:

Двоичная IP-адресация

Наиболее часто встречающейся и, вероятно, наиболее известной читателю является десятичная система счисления, которая основана на возведении в степень числа 10: 10 1 , 10 2 , 10 3, 10 4 и т.д.

1 — это то же самое, что и 1 x10 0 = 1×1 = 1
10 — это то же самое, что и 0 x10 0 + 1 x10 1 = 0x1 + 1×10 = 10
100 — то же самое, что и 0 x10 0 + 0 x10 1 + 1 x10 2 = 0x1+0x10+1х100 = 100.
1000 — то же самое, что и 0 x10 0 + 0 x10 1 + 0 x10 2 + 1 x10 3 = 0x1 + 0x10 + 0x100 + 1×1000 = 1000.

Двоичная система исчисления базируется на возведении в степень числа 2: 2 1 , 2 2 , 2 3 , 2 4 и т.д.

IP-адрес представляет собой 32-разрядное двоичное число, записанное в виде четырех октетов, т.е. четырех групп, каждая из которых состоит из восьми двоичных знаков (нулей и единиц). Таким образом, в IP-адресе, записанном как
11000000000001010010001000001011 ,
первый октет (8 бит) представляет собой двоичное число 11000000 ,
второй октет — двоичное число 00000101 ,
третий октет — двоичное число 00100010 ,
четвертый октет — двоичное число 00001011 .

Так как двоичная система основана на возведении в степень числа 2, каждая позиция в октете представляет различные степени от 2. Величина показателя степени 2 назначается каждому разряду двоичного числа, начиная с крайнего правого. Чтобы определить, чему равно двоичное число, необходимо сложить значения всех разрядов в октете.

Следовательно, для двоичного числа первого октета 11000000, справедливо следующее:

0x2 0 = 0x1 = 0
0x2 1 = 0x2 = 0
0x2 2 = 0x4 = 0
0x2 3 = 0x8 = 0
0x2 4 = 0x16 = 0
0x2 5 = 0x32 = 0
1×2 б = 1×64 = 64
1×2 7 = 1×128 = 128

Таким образом, двоичное число 11000000 в десятичном виде — 64+128=192.

Достаточно трудно запомнить число, состоящее из 8 цифр, не говоря уже о числах из 32 цифр, которые используются в IP-адресах. Поэтому для обозначения 32-битовых чисел в IP-адресах используются десятичные числа. Это называется представлением в десятичной форме с разделением точками.

В представлении в десятичной форме с разделением точками IP-адреса, или точечно-десятичные адреса, записываются следующим образом: каждое десятичное число представляет один байт из четырех, составляющих весь IP-адрес — 192.5.34.11

Чтобы перевести IP-адрес

перевести в этот упрощенный формат, для начала его надо представить в виде 4 отдельных байтов (по 8 бит); другими словами, IP-адрес необходимо разделить на 4 октета:

Затем каждое из этих 8-битовых чисел преобразовывается в его десятичный эквивалент.

В результате двоичное число 11000000.00000101.00100010.00001011 преобразуется в точечно-десятичное число 192.5.34.11.

Описание IP-адреса в двоичном, десятичном и шестнадцатеричном формате

Как правило, распространенные IP-адреса представляются в десятичном формате, но в некоторых случаях могут также использоваться другие методы записи, такие как двоичный и шестнадцатеричный, которые будут объяснены ниже:

IPv4: 202.103.0.68 Network Class, Net ID, Host ID

Описание IP-адреса в двоичном, десятичном и шестнадцатеричном форматеОписание класса IP-адреса A/B/C/D/E и идентификатора сети, идентификатора хоста

  • • Десятичный: IP-адрес, на который мы часто ссылаемся, обычно относится к сетевому адресу IPv4, который состоит из 4 цифр от 0 до 255, разделенных точками, например: 202.103.0.68, все эти 4 цифры являются десятичными числами, к которым привыкли люди. использовать, который легко понять, запомнить и написать;
  • • Двоичный: с точки зрения базовой технологии сетевой адрес IPv4 состоит из 32-битных двоичных чисел, и каждое двоичное число имеет только два значения, 0 и 1. Для облегчения компьютерной обработки 32 двоичных числа делятся на 4. байтов, каждый байт состоит из 8 двоичных цифр, а 4 байта разделены точками для облегчения ручной памяти и записи. Например: двоичное представление, соответствующее приведенному выше десятичному числу 202.103.0.68, равно 11001010.01100111.00000000.01000100;
  • • Шестнадцатеричный: Но в двоичной системе есть только два значения 0 и 1. Слишком долго писать 32 0 или 1 для выражения IPv4-адреса, поэтому в некоторых местах также используется шестнадцатеричный формат. Для представления каждого байта требуется только 2 шестнадцатеричных цифры, каждая шестнадцатеричная цифра — это 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E или F, всего 16 цифр, поэтому адрес IPv4, записанный таким образом, представляет собой четыре двузначных шестнадцатеричных числа, разделенных точками. Например: шестнадцатеричная запись, соответствующая приведенному выше десятичному числу 202.103.0.68, — это CA.67.00.44.

Подводя итог их различным использованиям:

  • • Десятичный: используется для записи, запоминания и передачи IP-адресов;
  • • Двоичный: используется для описания принципа IP-адреса и его реализации в машине;
  • • Шестнадцатеричный: используется для обозначения в технических документах, научных вычислениях и т. д.

Десятичные, двоичные и шестнадцатеричные числа одного и того же IP-адреса на самом деле эквивалентны и одинаковы. Есть формулы, которые можно конвертировать друг в друга, а есть специальные сетевые калькуляторы, которые можно использовать для конвертации. Мы не будем вдаваться в подробности математического метода преобразования, заинтересованные друзья могут поискать его в Интернете.

В более индивидуальных случаях также полезно использовать другие основания, такие как восьмеричное, для представления IP-адресов. Поскольку это очень редко, это не будет здесь объясняться.

Системы счисления, преобразование систем счисления, примеры перевода систем счисления

В мире существует много разных систем счисления: десятичная, двоичная, восьмеричная, двенадцатеричная, двадцатеричная, шестнадцатеричная, шестидесятеричная и др.

Каждую систему счисления мы разбирать не будем, так как нам это не пригодится, гораздо важнее разобраться в двух системах счисления для решения любых сетевых задач: десятичной и двоичной, я называю их «системами счисления в IP».

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

Итак, разбираемся в первых двух.

Системы счисления в ip

При делении сетей на подсети мы часто будет переводить ip адрес и маску из десятичной системы счисления в двоичную, и обратно. Именно поэтому я их назвал системами счисления ip.

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

Десятичная система счисления

Десятичная система счисления известна всем нам очень подробно, мы ею пользуемся каждый день (при оплате за транспорт, подсчёте количества штук чего либо, арифметические операции над числами). В десятичную систему счисления входят 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Десятичная система счисления является позиционной системой, потому что зависит от того, в каком месте числа (в каком разряде, на какой позиции) стоит цифра. Т.е. 001 – единица, 010 – это уже десять, 100 – а это сто. Мы видим, что менялась только позиция одной цифры (единицы), а число менялось очень значительно.

В любой позиционной системе счисления позиция цифры представляет собой цифру, помноженную на число основания системы счисления в степени позиции этой цифры. Посмотрите на пример, и станет всё ясно.

Число десятичное 123 = (1 * 10^2) + (2 * 10^1) + (3 * 10^0) = (1*100) + (2*10) + (3*1)
Число десятичное 209 = (2 * 10^2) + (0 * 10^1) + (9 * 10^0) = (2*100) + (0*10) + (9*1)

Двоичная система счисления

Двоичная система счисления нам может быть и вовсе не знакома, но поверьте, она намного проще, чем привычная нам десятичная система. В двоичную систему счисления входят всего 2 цифры: 0 и 1. Это сравнимо с лампочкой, когда она не горит – это 0, а когда свет включен – это 1.

Двоичная система счисления, как и десятичная, является позиционной.

Число двоичное 1111 = (1*2^3) + (1*2^2) + (1*2^1) + (1*2^0) = (1*8) + (1*4) + (1*2) + (1*1) = 8 + 4 + 2 + 1 = 15 (десятичное).

Число двоичное 0000 = (0*2^3) + (0*2^2) + (0*2^1) + (0*2^0) = (0*8) + (0*4) + (0*2) + (0*1) = 8 + 4 + 2 + 1 = 0 (десятичное).

Хотели мы того, или нет, но мы уже преобразовали 2 двоичных числа в десятичные. Рассмотрим более подробно дальше.

Из двоичной в десятичную систему счисления

Из двоичной системы счисления в десятичную систему счисления переводить не сложно, надо выучить степени двойки от 0 до 15, хотя в большинстве случаев будет достаточным от 0 до 7. Это связано с восемью битами каждого октета в ip адресе.

Для преобразования двоичного числа надо будет каждую цифру помножить на число 2 (основание системы счисления) в степени позиции той цифры, а затем сложить те цифры. В примерах ниже всё будет ясно.

Начнем с простых чисел и закончим числами из восьми цифр.

Число двоичное 111 = (1*2^2) + (1*2^1) + (1*2^0) = (1*4) + (1*2) + (1*1) = 4 + 2 + 1 = 7 (десятичное).

Число двоичное 001 = (0*2^2) + (0*2^1) + (1*2^0) = (0*4) + (0*2) + (1*1) = 0 + 0 + 1 = 1 (десятичное).

Число двоичное 100 = (1*2^2) + (0*2^1) + (0*2^0) = (1*4) + (0*2) + (0*1) = 4 + 0 + 0 = 4 (десятичное).

Число двоичное 101 = (1*2^2) + (0*2^1) + (1*2^0) = (1*4) + (0*2) + (1*1) = 4 + 0 + 1 = 5 (десятичное).

Точно таким же образом можно преобразовать любое двоичное число в десятичное.

Число двоичное 1010 = (1*2^3) + (0*2^2) + (1*2^1) + (0*2^0) = (1*8) + (0*4) + (1*2) + (0*1) = 8 + 0 + 2 + 0 = 10 (десятичное).

Число двоичное 10000001 = (1*2^7) + (0*2^6) + (0*2^5) + (0*2^4) + (0*2^3) + (0*2^2) + (0*2^1) + (1*2^0) = (1*128) + (0*64) + (0*32) + (0*16) + (0*8) + (0*4) + (0*2) + (1*1) = 128 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 129 (десятичное).

А так же когда вам надоест считать действия с нулями, то пропускайте их. Ваши подсчёты станут краткими и красивыми.

Число двоичное 10000001 = (1*2^7) + (1*2^0) = (1*128) + (1*1) = 128 + 1 = 129 (десятичное).

Число двоичное 10000011 = (1*2^7) + (1*2^1) + (1*2^0) = (1*128) + (1*2) + (1*1) = 128 + 2 + 1 = 131 (десятичное).

Число двоичное 01111111 = (1*2^6) + (1*2^5) + (1*2^4) + (1*2^3) + (1*2^2) + (1*2^1) + (1*2^0) = (1*64) + (1*32) + (1*16) + (1*8) + (1*4) + (1*2) + (1*1) = 64 + 32 + 16 + 8 + 4 + 2 + 1 = 127 (десятичное).

Число двоичное 11111111 = (1*2^7) + (1*2^6) + (1*2^5) + (1*2^4) + (1*2^3) + (1*2^2) + (1*2^1) + (1*2^0) = (1*128) + (1*64) + (1*32) + (1*16) + (1*8) + (1*4) + (1*2) + (1*1) = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 (десятичное).

Число двоичное 01111011 = (1*2^6) + (1*2^5) + (1*2^4) + (1*2^3) + (1*2^1) + (1*2^0) = (1*64) + (1*32) + (1*16) + (1*8) + (1*2) + (1*1) = 64 + 32 + 16 + 8 + 2 + 1 = 123 (десятичное).

Число двоичное 11010001 = (1*2^7) + (1*2^6) + (1*2^4) + (1*2^0) = (1*128) + (1*64) + (1*16) + (1*1) = 128 + 64 + 16 + 1 = 209 (десятичное).

Вот и справились. Теперь переведём всё обратно из двоичной в десятичную.

Из десятичной в двоичную систему счисления

Перевод из десятичной системы счисления в двоичную систему тоже не труден, только вместо сложения потребуется вычитание.

Последовательность перевода в десятичную систему счисления следующая: надо вычесть из переводимого числа ближайшее (меньшее или равное) число к нему из степеней двойки. Затем проделать тоже самое с получившимся значением, и так до нуля. В зависимости от используемой степени двойки записать цифру 1 в нужном разряде двоичного числа, пропуски заполнить единицами.

Смотрите примеры, и вопросы отпадут сами собой.

Число десятичное 7: 7-4=3 — ближайшее меньшее (или равное) число к 7 из степеней двойки это 4 (2^2). Вычитаем из 7 число 4, получаем 3. Затем 3-2=1 — ближайшее меньшее (или равное) число к 3 из степеней двойки это 2 (2^1). Вычитаем из 3 число 2, получаем 1. 1-1=0 — ближайшее меньшее (или равное) число к 1 из степеней двойки это 1 (2^0). Вычитаем из 1 число 1, получаем 0. Всего из нашего числа мы вычли 4, 2 и 1, т.е. 2^2, 2^1 и 2^0. Ставим единицы в разряды по степеням двоек – 111. Если мы считаем октетом, то надо добавить нули – 00000111. Готово.

Чтобы не сбивать вас, уберём слова:
Число десятичное 10: 10-8=2; 2-2=0. Двоичное число – 00001010.
Число десятичное 129: 129-128=1; 1-1=0. Двоичное число – 10000001.
Число десятичное 131: 131-128=3; 3-2=1; 1-1=0. Двоичное число – 10000011.

Число десятичное 127: 127-64=63; 63-32=31; 31-16=15; 15-8=7; 7-4=3; 3-2=1; 1-1=0. Двоичное число – 01111111.

Число десятичное 255: 255-128=127; 127-64=63; 63-32=31; 31-16=15; 15-8=7; 7-4=3; 3-2=1; 1-1=0. Двоичное число – 11111111.

Число десятичное 123: 123-64=59; 59-32=27; 27-16=11; 11-8=3; 3-2=1; 1-1=0. Двоичное число – 01111011.

Число десятичное 209: 209-128=81; 81-64=17; 17-16=1; 1-1=0. Двоичное число – 11010001.

Заключение

Как вы видите, переводить из двоичной системы счисления в десятичную систему счисления не очень сложно. Это преобразование мы будет часто использовать при делении сетей на подсети.

Попробуйте сами преобразовать ваши число и год рождения. Для проверки можете использовать виндовс-калькулятор в инженерном режиме или режиме Программист.

Как перевести ip адрес в двоичную систему?

Помогите понять, каким образом происходит преобразование. Нужна схема, по которой происходит преобразование.

Отслеживать

51.3k 87 87 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков

задан 8 июл 2015 в 12:03

Imaginarius Imaginarius

27 1 1 золотой знак 2 2 серебряных знака 4 4 бронзовых знака

Хм. По байту на секцию в случае IPv4 и по два байта в случае IPv6?

8 июл 2015 в 12:08

И в случае IPv6 заполнение нулями области между двумя подряд идущими двоеточиями.

8 июл 2015 в 12:11

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

64.233.187.99 => 64*2^24 + 233*2^16 + 187*2^8 + 99 = 1089059683 1089059683 => 1000000111010011011101101100011 

Для перевода чисел из десятичной системы счисления в двоичную используют так называемый «алгоритм замещения», состоящий из следующей последовательности действий:

  1. Делим десятичное число А на 2. Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит двоичного числа.
  2. Если частное q не равно 0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или 1) записывается в разряды двоичного числа в направлении от младшего бита к старшему.
  3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a = 1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *