Переклад із двійкової до десяткової системи обчислення. Швидкий переведення числа з десяткової системи числення до двійкової

Запишіть число у двійковій системі числення, а ступеня двійки праворуч наліво.Наприклад, хочемо перетворити двійкове число 10011011 2 в десяткове. Спочатку запишемо його. Потім запишемо ступеня двійки праворуч наліво. Почнемо з 20, що дорівнює "1". Збільшуємо ступінь на одиницю кожного наступного числа. Зупиняємось, коли кількість елементів у списку дорівнює числу цифр у двійковому числі. Наше число для прикладу, 10011011, включає вісім цифр, тому список з восьми елементів буде виглядати так: 128, 64, 32, 16, 8, 4, 2, 1

Запишіть цифри двійкового числа під відповідними ступенями двійки.Тепер просто запишіть 10011011 під числами 128, 64, 32, 16, 8, 4, 2, і 1, щоб кожна двійкова цифра відповідала свого ступеня двійки. Найправіша "1" двійкового числа повинна відповідати правій "1" зі ступенів двійок, і так далі. Якщо вам зручніше, ви можете записати двійкове число над ступенями двійки. Найважливіше – щоб вони відповідали одне одному.

З'єднайте цифри у двійковому числі з відповідними ступенями двійки.Намалюйте лінії (справа ліворуч), які з'єднують кожну наступну цифру двійкового числа зі ступенем двійки, що знаходиться над нею. Почніть побудову ліній зі з'єднання першої цифри двійкового числа з першим ступенем двійки над нею. Потім намалюйте лінію від другої цифри двійкового числа до другого ступеня двійки. Продовжуйте з'єднувати кожну цифру з відповідним ступенем двійки. Це допоможе вам візуально побачити зв'язок між двома різними наборами чисел.

Запишіть кінцеве значення кожного ступеня двійки.Пройдіться по кожній цифрі двійкового числа. Якщо ця цифра 1, запишіть відповідний рівень двійки під цифрою. Якщо ця цифра є 0, запишіть під цифрою 0.

  • Оскільки "1" відповідає "1", вона залишається "1". Оскільки "2" відповідає "1", вона залишається "2". Оскільки "4" відповідає "0", вона стає "0". Так як "8" відповідає "1", вона стає "8", і так як "16" відповідає "1" вона стає "16". "32" відповідає "0" і стає "0", "64" відповідає "0" і тому стає "0", тоді як "128" відповідає "1" і стає 128.
  • Складіть значення, що вийшло.Тепер складіть цифри, що вийшли під лінією. Ось що ви повинні зробити: 128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155. Це десятковий еквівалент бінарного числа 10011011.

    Запишіть відповідь разом з нижнім індексом, що дорівнює системі числення.Тепер все, що вам залишилося зробити – це записати 155 10 , щоб показати, що ви працюєте з десятковою відповіддю, яка оперує ступенями десятки. Чим більше ви перетворюватимете двійкові числа в десяткові, тим простіше вам буде запам'ятати ступеня двійки, і тим швидше ви зможете виконувати дане завдання.

  • Використовуйте цей метод, щоб перетворити двійкове число з десятковою точкою на десяткову форму.Ви можете використовувати цей метод, навіть якщо ви хочете перетворити двійкове число, таке як 1.1 2 в десяткове. Все, що вам необхідно знати – це те, що число у лівій частині десяткового числа – це звичайне число, а число у правій частині десяткового числа – це число поділів надвоє, або 1 x (1/2).

    • "1" зліва від десяткового числа відповідає 20, або 1. 1 праворуч від десяткового числа відповідає 2 -1, або.5. Складіть 1 і.5 і ви отримаєте 1.5, що є еквівалентом 1.1 2 у десятковому вигляді.
  • Більшість людей на нашій планеті за рахунку користуються десятковою системою числення, а ось у комп'ютерах використовують двійкову. Деякі племена на зорі розвитку людства використовували дванадцяткову та шістдесяткову. Саме від них нам залишилися 12 годин на циферблаті та 60 хвилин на годину.

    Іноді необхідно перевести число з однієї системи до іншої. У цій статті розглянемо конкретніше, як переводити до десяткової системи з інших популярних систем.

    Принцип побудови числа із цифр

    Насамперед треба зрозуміти, що таке система числення та її основу. Система числення - спосіб представлення чисел як комбінації тих чи інших цифр. Підстава системи – кількість цифр, що в ній використовуються. Наприклад, у десятковій системі з основою 10 всього 10 цифр - від 0 до 9. У шістнадцятковій, відповідно, 16 цифр, для позначення яких використовуються арабські цифри 0 - 9 і латинські літери A - F замість цифр 10 - 15. Наприклад, 2F7BE 16 - Число шістнадцятковій системи. За такого запису нижнім індексом позначається основа системи числення. Ключовою відмінністю між системами з різними підставами є "цінність" числа 10. У шістнадцятковій системі 10 16 дорівнюватиме 16 10 , а в двійковій 10 2 одно лише двом. 100 16 буде обчислюватися як

    100 16 = 10 16 * 10 16 = 16 10 * 16 10 = 256 10 .

    Слід також розрізняти поняття "цифра" та "число". Цифра позначається одним символом, а число може і кількома. Наприклад, число 9 10 у двійковій системі буде виглядати як 1001 2 , а цифра 9 у двійковій системі не існує як така.

    Алгоритм перекладу

    Щоб перевести в десяткову систему число, потрібно навчитися використовувати нескладний алгоритм.

    1. Визначити основу системи числення. Воно позначається нижнім індексом після числа, наприклад, серед 2F7BE 16 основа дорівнює 16.
    2. Кожну цифру числа помножити на основу ступеня, що дорівнює номеру цифри справа наліво, починаючи з нуля. У числі 2F7BE 16 Е (рівне 14) множиться на 16 у нульовому ступені, В (цифра 11) - на 16 у першому ступені і так далі: 2F7BE 16 = 2*16 4 +15*16 3 + 7*16 2 + 11 *16 1 + 14*16 0 .
    3. Скласти отримані результати.

    2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 = 194494 10 .

    Розглянемо на прикладах, як найпопулярніші – шістнадцяткову, вісімкову та двійкову системи перевести в десяткову.

    • 5736 8 = 5*8 3 + 7*8 2 + 3*8 1 + 6*8 0 = 3038 10
    • 1001011 2 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 75 10
    • 2F7BE 16 = 2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 = 194494 10

    Зрозуміло, вважати щоразу вручну незручно, нераціонально, та й небажання. Існує безліч калькуляторів, які вміють переводити числа із системи в систему. Наприклад, стандартний калькулятор Windows у режимі "Програміст" (клавіші Alt+3 або меню "Вид") може працювати з системами основ 2, 8, 10 та 16.

    Калькулятор дозволяє переводити цілі та дробові числа з однієї системи числення до іншої. Підстава системи числення може бути менше 2 і більше 36 (10 цифр і 26 латинських букв все-таки). Довжина чисел не повинна перевищувати 30 символів. Використовуйте символ для введення дробових чисел. або, . Щоб перевести число з однієї системи в іншу, введіть вихідне число в перше поле, основу вихідної системи числення в друге та основу системи числення, в яку потрібно перевести число, в третє поле, після чого натисніть кнопку "Отримати запис".

    Початкове число записано в 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 -ой системі числення.

    Хочу отримати запис числа в 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 -ой системі числення.

    Отримати запис

    Виконано перекладів: 1237200

    Системи числення

    Системи числення поділяються на два типи: позиційніі не позиційні. Ми користуємося арабською системою, вона є позиційною, а є ще римська – вона якраз не позиційна. У позиційних системах становище цифри у числі однозначно визначає значення цього числа. Це легко зрозуміти, розглянувши на прикладі якогось числа.

    Приклад 1. Візьмемо число 5921 у десятковій системі числення. Пронумеруємо число праворуч наліво починаючи з нуля:

    Число 5921 можна записати в наступному вигляді: 5921 = 5000 +900 +20 +1 = 5 · 10 3 +9 · 10 2 +2 · 10 1 +1 · 10 0 . Число 10 є характеристикою, що визначає систему числення. В якості ступенів взято значення позиції даного числа.

    Приклад 2. Розглянемо дійсне десяткове число 1234.567. Пронумеруємо його починаючи з нульової позиції числа від десяткової точки вліво та вправо:

    Число 1234.567 можна записати в наступному вигляді: 1234.567 = 1000+200+30+4+0.5+0.06+0.007 = 1·10 3 +2·10 2 +3·10 1 +4·10 0 +5·10 -1 + 6·10 -2 +7·10 -3 .

    Переведення чисел з однієї системи числення до іншої

    Найбільш простим способом переведення числа з однієї системи числення в іншу є переклад числа спочатку в десяткову систему числення, а потім, отриманого результату в необхідну систему числення.

    Переказ чисел з будь-якої системи числення до десяткової системи числення

    Для переведення числа з будь-якої системи числення до десяткової достатньо пронумерувати його розряди, починаючи з нульового (розряд ліворуч від десяткової точки) аналогічно прикладам 1 або 2.

    1. Перевести число 1001101.1101 2 в десяткову систему числення.
    Рішення: 10011.1101 2 = 1·2 4 +0·2 3 +0·2 2 +1·2 1 +1·2 0 +1·2 -1 +1·2 -2 +0·2 -3 +1·2 - 4 = 16+2+1+0.5+0.25+0.0625 = 19.8125 10
    Відповідь: 10011.1101 2 = 19.8125 10

    2. Перевести число E8F.2D 16 в десяткову систему числення.
    Рішення: E8F.2D 16 = 14·16 2 +8·16 1 +15·16 0 +2·16 -1 +13·16 -2 = 3584+128+15+0.125+0.05078125 = 3727.17578125 10
    Відповідь: E8F.2D 16 = 3727.17578125 10

    Переклад чисел із десяткової системи числення в іншу систему числення

    Для переведення чисел із десяткової системи числення в іншу систему числення цілу та дробову частини числа потрібно переводити окремо.

    Переклад цілої частини числа з десяткової системи числення до іншої системи числення

    Ціла частина переводиться з десяткової системи числення в іншу систему числення за допомогою послідовного поділу цілої частини числа на основу системи числення до отримання цілого залишку, меншої основи системи числення. Результатом перекладу буде запис із залишків, починаючи з останнього.

    3. Перевести число 273 10 у восьмирічну систему числення.
    Рішення: 273/8 = 34 і залишок 1, 34/8 = 4 і залишок 2, 4 менший за 8, тому обчислення завершено. Запис із залишків матиме такий вигляд: 421
    Перевірка: 4 · 8 2 +2 · 8 1 +1 · 8 0 = 256 +16 +1 = 273 = 273, результат збігся. Отже переклад виконано правильно.
    Відповідь: 273 10 = 421 8

    Розглянемо переведення правильних десяткових дробів у різні системи числення.

    Переведення дробової частини числа з десяткової системи числення до іншої системи числення

    Нагадаємо, правильним десятковим дробом називається речове число з нульовою цілою частиною. Щоб перевести таке число в систему числення з основою N потрібно послідовно множити число на N до тих пір, поки дробова частина не обнулиться або не буде отримана необхідна кількість розрядів. Якщо при множенні виходить число з цілою частиною, відмінне від нуля, то ціла частина далі не враховується, тому що послідовно заноситься до результату.

    4. Перевести число 0.125 10 у двійкову систему числення.
    Рішення: 0.125·2 = 0.25 (0 - ціла частина, яка стане першою цифрою результату), 0.25·2 = 0.5 (0 - друга цифра результату), 0.5·2 = 1.0 (1 - третя цифра результату, оскільки дробова частина дорівнює нулю , то переклад завершено).
    Відповідь: 0.125 10 = 0.001 2

    В одному з наших матеріалів ми розглянули визначення. Воно має найкоротший алфавіт. Тільки дві цифри: 0 і 1. Приклади алфавітів позиційних систем числення наведено у таблиці.

    Позиційні системи числення

    Назва системи

    Заснування

    Алфавіт

    Двійкова

    Потрійна

    Четверична

    П'ятерична

    Вісімкова

    Десяткова

    0,1,2,3,4,5,6,7,8,9

    Дванадцяткова

    0,1,2,3,4,5,6,7,8,9,А,В

    Шістнадцяткова

    0,1,2,3,4,5,6,7,8,9,А,В,З,D,E,F

    Тридцятишестирічна

    0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O, P,R,S,T,U,V,X,Y,Z


    Для переведення невеликого числа з десяткового до двійкового, і назад, краще користуватися наступною таблицею.

    Таблиця переведення десяткових чисел від 0 до 20 у двійкову систему числення.

    десяткове

    число

    двійкове число

    десяткове

    число

    двійкове число


    Однак таблиця вийде величезною, якщо записати туди усі числа. Шукати серед них потрібне число буде складніше. Набагато простіше запам'ятати кілька алгоритмів переведення чисел із однієї позиційної системи числення до іншої.


    Як зробити переклад із однієї системи числення до іншої? В інформатиці існує кілька простих способів переведення десяткових чисел у двійкові числа. Розглянемо два із них.

    Спосіб №1.

    Припустимо, потрібно перевести число 637 десяткової системи в двійковій системі.


    Робиться це наступним чином: відшукується максимальний ступінь двійки, щоб два в цій мірі було менше або дорівнює вихідному числу.


    У разі це 9, т.к. 2 9 =512 , а 2 10 =1024 що більше нашого початкового числа. Таким чином, ми отримали кількість розрядів результату. Воно дорівнює 9+1=10. Значить, результат матиме вигляд 1ххххххххх, де замість х може стояти 1 або 0.


    Знайдемо другу цифру результату. Зведемо двійку до ступеня 9 і віднімемо з вихідного числа: 637-2 9 =125. Потім порівнюємо з числом 2 8 =256 . Оскільки 125 менше 256, то дев'ятий розряд буде 0, тобто. результат вже набуде вигляду 10хххххххх.


    2 7 =128 > 125 , Отже і восьмий розряд буде нулем.


    2 6 =64 , то сьомий розряд дорівнює 1. 125-64=61 Таким чином, ми отримали чотири старші розряди і число набуде вигляду 10011ххххх.


    2 5 =32 і бачимо, що 32< 61, значит шестой разряд равен 1 (результат 100111хххх), остаток 61-32=29.


    2 4 =16 < 29 - П'ятий розряд 1 => 1001111ххх. Залишок 29-16 = 13.


    2 3 =8 < 13 => 10011111хх. 13-8 = 5


    2 2 =4 < 5 => 10011111хх, залишок 5-4=1.


    2 1 =2 > 1 => 100111110х, залишок 2-1 = 1.


    2 0 =1 => 1001111101.


    Це буде кінцевий результат.

    Спосіб №2.

    Правило переведення цілих десяткових чисел у двійкову систему числення, каже:

    1. Розділимо a n−1 a n−2 ...a 1 a 0 =a n−1⋅2 n−1 +a n−2⋅2 n−2 +...+a 0⋅2 0 на 2.
    2. Приватне буде одно an−1⋅2n−2+...+a1, а залишок дорівнюватиме
    3. Отримане приватне знову розділимо на 2, залишок від розподілу дорівнюватиме a1.
    4. Якщо продовжити цей процес поділу, то на n-му кроці отримаємо набір цифр: a 0 ,a 1 ,a 2 ,...,a n−1, які входять у двійкове уявлення вихідного числа та збігаються з залишками при його послідовному розподілі на 2.
    5. Таким чином, для переведення цілого десяткового числа в двійкову систему числення потрібно послідовно виконувати розподіл даного числа і одержуваних цілих приватних на 2 до тих пір, поки не отримаємо приватне, яке дорівнює нулю.

    Вихідне число у двійковій системі числення складається послідовним записом отриманих залишків. Записувати його починаємо з останнього знайденого.


    Перекладемо десяткове число 11 у двійкову систему числення. Розглянуту вище послідовність дій (алгоритм перекладу) можна зобразити так:


    Отримали 11 10 =1011 2 .

    Приклад:

    Якщо десяткове число досить велике, то більш зручний наступний спосіб запису розглянутого вище алгоритму:



    363 10 =101101011 2



    Привіт відвідувач сайту сайт! Продовжуємо вивчати і протокол мережного рівня IP, і якщо бути точнішим, його версію IPv4. На перший погляд, тема двійкових чисел та двійкової системи численняне має відношення до протоколу IP, але якщо згадати, що комп'ютери працюють з нулями та одиницями, то виявляється, що двійкова система та її розуміння – це основа основ, нам потрібно навчитися переводити числа з двійкової системи числення до десятковоїі навпаки: з десяткової до двійкової. Це допоможе краще зрозуміти протокол IP, а також принцип роботи масок мережі змінної довжини. Давайте приступати!

    Якщо тема комп'ютерних мереж вам цікава, можете ознайомитися з іншими записами курсу.

    4.4.1 Вступ

    Перш ніж ми почнемо, варто взагалі пояснити, навіщо потрібна ця тема мережному інженеру. Хоча ви могли переконатися в її необхідності, коли ми говорили, але, ви можете сказати, що є IP-калькулятори, які суттєво полегшують завдання з розподілу IP-адрес, обчислення потрібних масок підмереж/мереж та визначення номера мережі та номера вузла в IP- адресу. Так воно так, але IP-калькулятор не завжди під рукою, це причина номер раз. Причина номер два полягає в тому, що на іспитах Cisco вам не дадуть IP-калькулятор і всі перетворення IP-адрес з десяткової системи числення в двійкову вам доведеться робити на аркуші паперу, а питань, де це потрібно на іспиті/іспитах з отримання сертифіката CCNA не так вже й мало, буде прикро, якщо через таку дрібницю іспит буде завалений. Ну і нарешті розуміння двійкової системи числення веде на краще розуміння принципу роботи.

    Взагалі мережевий інженер нічого не винні робити переклад чисел з двійкової системи числення в десяткову і навпаки у думці. Більше того, це рідко хто вміє робити в розумі, в основному до такої категорії належать викладачі різних курсів по комп'ютерних мережах, оскільки вони стикаються з цим постійно день у день. Але за допомогою аркуша паперу та ручки вам варто навчитися здійснювати переклад.

    4.4.2 Десяткові цифри та числа, розряди у числах

    Давайте почнемо з простого і поговоримо про двійкові цифри та числа, Ви знаєте, що цифри і числа – це дві різні речі. Цифра – це спеціальний символ для позначення, а число – абстрактний запис, що означає кількість. Наприклад, щоб записати, що у нас п'ять пальців на руці ми можемо використовувати римські та арабські цифри: V і 5. В даному випадкуп'ять одночасно і числом, і цифрою. А, наприклад, для запису числа 20 ми використовуємо дві цифри: 2 та 0.

    У десятковій системі числення ми маємо десять цифр або десять символів (0,1,2,3,4,5,6,7,8,9), комбінуючи які ми можемо записувати різні числа. Яким принципом ми керуємося, використовуючи десяткову систему числення? Та все дуже просто, ми зводимо десятку в той чи інший ступінь, наприклад візьмемо число 321. Як його можна записати по-іншому, так: 3*10 2 +2*10 1 +1*10 0 . Таким чином виходить, що число 321 являє собою три розряди:

    1. Цифра 3 означає старший розряд або в даному випадку це сотні, інакше їх кількість.
    2. Цифра 2 стоїть у розряді десятків, у нас два десятки.
    3. Цифра одна відноситься до молодшого розряду.

    Тобто в даному записі двійка це не просто двійка, а дві десятки або двічі по десять. А трійка це не просто трійка, а тричі по сто. Виходить така залежність: одиниця кожного наступного розряду в десять разів більша від одиниці попереднього, адже, що таке 300 – це три рази по сто. Відступ із приводу десяткової системи числення було потрібно, щоб простіше зрозуміти двійкову.

    4.4.3 Двійкові цифри та числа, а також їх запис

    У двійковій системі числення всього дві цифри: 0 та 1. Тому запис числа в двійковій системі часто набагато більше, ніж у десятковій. За винятком чисел 0 і 1, нуль у двійковій системі числення дорівнює нулю в десятковій, аналогічно і для одиниці. Іноді, щоб не переплутати в якій системі числення записано число, використовують суб-індекси: 267 10 10100 12 4712 8 . Число в суб-індексі вказує на систему числення.

    Для запису двійкових чисел можуть бути використані символи 0b та &(амперсанд): 0b10111, &111. Якщо в десятковій системі числення, щоб вимовити число 245 ми скористаємося ось такою конструкцією: двісті сорок п'ять, то в двійковій системі числення, щоб назвати число, нам потрібно вимовити цифру з кожного розряду, наприклад, число 1100 у двійковій системі числення слід вимовляти не як тисяча сто, а як один, один, нуль, нуль. Давайте подивимося на запис чисел від 0 до 10 у двійковій системі числення:

    Думаю, логіка має бути вже зрозумілою. Якщо в десятковій системі числення для кожного розряду у нас було доступно десять варіантів (від 0 до 9 включно), то в двійковій системі числення в кожному з розрядів двійкового числа ми маємо тільки два варіанти: 0 або 1 .

    Для роботи з IP-адресами та масками підмережі нам достатньо натуральних чисел у двійковій системі числення, хоча двійкова система дозволяє записувати дробові та негативні числа, але нам це без потреби.

    4.4.4 Перетворення чисел із десяткової системи числення у двійкову

    Давайте краще розберемося з тим, як перетворити число з десяткової системи числення в двійкову. І тут все насправді дуже і дуже просто, хоча на словах пояснити важко, тож одразу наведу приклад перетворення чисел із десяткової системи числення у двійкову. Візьмемо число 61, щоб виконати перетворення на двійкову систему, нам потрібно це число ділити на два і дивитися, що виходить у залишку від поділу. А результат розподілу знову ділити на два. У даному випадку 61 – це ділене, як дільник у нас завжди буде двійка, а приватне (результат поділу) ми ділимо знову на два, продовжуємо поділ до тих пір, поки в приватному не виявиться 1, ця остання одиниця і буде крайнім лівим розрядом . Малюнок нижче демонструє.

    При цьому зверніть увагу, що число 61 це не 101111, а 111101, тобто виписуємо результат з кінця. Одиницю в останньому приватному сенсі ділити на два немає, оскільки в даному випадку використовується цілий поділ, а при такому підході виходить так, як на Рисунку 4.4.2.

    Це не найшвидший спосіб переведення числа з двійкової системи числення до десяткової. Ми маємо кілька прискорювачів. Наприклад, число 7 у двійковій системі записується як 111, число 3 як 11, а число 255 як 11111111. Всі ці випадки до неподобства прості. Справа в тому, що числа 8, 4 і 256 є ступенями двійки, а числа 7, 3 і 255 на одиницю менше цих чисел. Так ось для числа, які на одиницю менше, ніж число, що дорівнює ступеню двійки, діє просте правило: у двійковій системі таке десяткове число записується кількістю одиниць рівним ступеня двійки. Так, наприклад, число 256 це два у восьмому ступені, отже, 255 записується як 11111111, а число 8 це два в третьому ступені, а це говорить нам про те, що 7 у двійковій системі числення буде записано як 111. Ну а зрозуміти, як записати 256, 4 та 8 у двійковій системі числення теж не важко, досить просто додати одиницю: 256 = 11111111 + 1 = 100000000; 8 = 111 + 1 = 1000; 4 = 11 + 1 = 100.
    Будь-який свій результат ви можете перевірити на калькуляторі і спочатку краще так і робити.

    Як бачимо, ділити ми ще не розучилися. І тепер можемо рухатись далі.

    4.4.5 Перетворення чисел із двійкової системи числення в десяткову

    Перетворення чисел із двійкової системи числення виконується набагато простіше, ніж переведення з десяткової у двійкову. Як приклад перекладу будемо використовувати число 11110. Зверніть увагу на табличку нижче, вона показує ступінь, в який потрібно звести двійку, щоб потім отримати десяткове число.

    Щоб з цього двійкового числа отримати десяткове, потрібно кожне число в розряді помножити на два ступеня, а потім скласти результати перемноження, простіше показати:

    1*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 = 16+8+4+2+0=30

    Відкриємо калькулятор і переконаємося, що 30 у десятковій системі числення, це 11110 у двійковій.

    Бачимо, що все зроблено правильно. З прикладу видно, що Переведення числа з двійкової системи числення в десяткову виконується набагато простіше, ніж зворотній переказ. Щоб впевнено працювати з потрібно лише пам'ятати ступеня двійки до 2 8 . Для наочності наведу таблицю.

    Нам більше і не потрібно, оскільки максимально можливе число, яке можна записати в один байт (8 біт або вісім двійкових значень), дорівнює 255, тобто в кожному октеті IP-адреси або маски підмережі протоколу IPv4 максимально можливе значення — 255. , В яких є значення більше 255, але їх нам розраховувати не потрібно.

    4.4.6 Додавання, віднімання, множення двійкових чисел та інші операції з двійковими числами

    Давайте тепер подивимося на операції, які можна виконувати з двійковими числами. Почнемо з простих арифметичних операцій, а потім перейдемо до операцій булевої алгебри.

    Додавання двійкових чисел

    Складати двійкові числа не так вже й складно: 1+0 =1; 1+1=0 (надалі жінок пояснення); 0+0=0. Це були прості приклади, де використовувався лише один розряд, погляньмо на приклади, де кількість розрядів більша, ніж один.
    101+1101 у десятковій системі це буде 5 + 13 = 18. Давайте порахуємо у стовпчик.

    Результат виділено помаранчевим кольором, калькулятор каже, що ми вірно порахували, можете перевірити. Тепер давайте дивитися чому так вийшло, адже спочатку я написав, що 1+1=0, але це для випадку, коли ми маємо лише один розряд, для випадків, коли розрядів більше, ніж один, 1+1=10 (або два у десятковій), що логічно.

    Тоді дивіться, що виходить, ми виконуємо складання по розрядах справа наліво:

    1. 1+1=10, записуємо нуль, а одиниця йде наступного розряду.

    2. У наступному розряді виходить 0+0+1=1 (ця одиниця прийшла до нас із результату додавання на кроці 1).

    4. Тут у нас є одиниця лише у другого числа, але сюди ще перенеслася, тож 0+1+1 = 10.

    5. Склеюємо все воєдино:10|0|1|0.

    Якщо ліньки у стовпчик, то давайте рахувати так: 101011+11011 або 43 + 27 = 70. Як тут можна вчинити, а давайте дивитися, адже нам ніхто не забороняє робити перетворення, а від зміни місць доданків сума не змінюється, для двійкової системи числення це правило також є актуальним.

    1. 101011 = 101000 + 11 = 101000 + 10 + 1 = 100000 + 1000 + 10 + 1.
    2. 11011 = 11000 + 10 + 1 = 10000 + 1000 + 10 + 1.
    3. 100000 + 10000 + (1000 +1000) + (10+10) + (1+1).
    4. 100000 + (10000 + 10000) + 100 + 10.
    5. 100000 + 100000 +110
    6. 1000000 + 110.
    7. 1000110.

    Можете перевірити калькулятором, 1000110 у двійковій системі числення це 70 у десятковій.

    Віднімання двійкових чисел

    Відразу приклад для віднімання однорозрядних чисел у двійковій системі числення, Про негативні числа ми не говорили, тому 0-1 не беремо до уваги: ​​1 - 0 = 1; 0 - 0 = 0; 1 - 1 = 0. Якщо розрядів більше ніж один, то теж все просто, навіть ніяких стовпчиків і хитрощів не потрібно: 110111 - 1000, це те ж саме, що і 55 - 8. В результаті ми отримаємо 101111. І битися серце перестало , звідки одиниця у третьому розряді (нумерація зліва направо і починається з нуля)? Та все просто! У другому розряді числа 110111 стоїть 0, а в першому розряді стоїть 1 (якщо приймемо, що нумерація розрядів починається з 0 і йде зліва направо), але одиниця четвертого розряду виходить шляхом складання двох одиниць третього розряду (виходить така собі віртуальна двійка) і від цієї двійки ми віднімаємо одиницю, яка стоїть у нульовому розряді числа 1000, а 2 — 1 = 1, а 1 є допустимою цифрою в двійковій системі числення.

    Розмноження двійкових чисел

    Нам залишилося розглянути множення двійкових чисел, що реалізує за рахунок зсуву на один розряд вліво. Але спочатку давайте подивимося на результати однорозрядного множення: 1*1 = 1; 1 * 0 = 0 0 * 0 = 0. Власне, все просто, тепер давайте подивимося на щось складніше. Візьмемо числа 101001 (41) та 1100 (12). Примножувати будемо стовпчиком.

    Якщо з таблиці незрозуміло як так вийшло, спробую пояснити словами:

    1. Множення двійкових чисел зручно робити в стовпчик, тому виписуємо другий множник під першим, якщо числа з різним числом розрядів, то буде зручніше, якщо більше число буде зверху.
    2. Наступним кроком множимо всі розряди першого числа наймолодший розряд другого числа. Записуємо результат перемноження нижче, при цьому потрібно записати так, щоб під кожним відповідним розрядом був записаний результат перемноження.
    3. Тепер нам потрібно перемножити всі розряди першого числа на наступний розряд другого числа і результат записати ще одним рядком нижче, але цей результат потрібно зрушити на один розряд вліво, якщо дивитися на таблицю, це друга послідовність нулів зверху.
    4. Так само потрібно зробити для наступних розрядів, щоразу зсуваючись на один розряд вліво, а якщо дивитися на таблицю, то можна сказати, що на одну клітинку вліво.
    5. У нас вийшло чотири двійкові числа, які потрібно тепер скласти та отримати результат. Додавання ми нещодавно розглянули, проблем виникнути не повинно.

    Загалом операція множення не така вже й складна, потрібно лише трохи попрактикуватися.

    Операції булевої алгебри

    У булевій алгебрі є два дуже важливі поняття: true (істина) і false (брехня), еквівалентом для них є нуль і одиниця в двійковій системі числення. Оператори булевої алгебри розширюють кількість доступних операторів над цими значеннями, давайте подивимося.

    Операція «Логічне І» чи AND

    Операція «Логічна І» або AND еквівалентна множенню однорозрядних двійкових чисел.

    1 AND 1 = 1; 1 AND 0 = 1; 0 AND 0 = 0; 0 і 1 = 0.

    1 AND 1 = 1;

    1 AND 0 = 1;

    0 AND 0 = 0;

    0 і 1 = 0.

    Одиниця в результаті «Логічного І» буде тільки в тому випадку, якщо обидва значення дорівнюють одиниці, у всіх інших випадках буде нуль.

    Операція «Логічне АБО» або OR

    Операція «Логічний АБО» або OR працює за наступним принципом: якщо хоча б одне значення дорівнює одиниці, то в результаті буде одиниця.

    1 OR 1 = 1; 1 OR 0 = 1; 0 OR 1 = 1; 0 OR 0 = 0.

    1 OR 1 = 1;

    1 OR 0 = 1;

    0 OR 1 = 1;

    0 OR 0 = 0.

    Операція «Виключає АБО» або XOR

    Операція «Виключає АБО» або XOR дасть нам в результаті одиницю тільки в тому випадку, якщо один з операндів дорівнює одиниці, а другий дорівнює нулю. Якщо обидва операнда дорівнюють нулю, буде нуль і навіть якщо обидва операнда дорівнюють одиниці, в результаті вийде нуль.