Ви майже напевно чули про негативні числа. Якщо ви хоч трохи ознайомились зі світом інформатики та комп’ютерного програмування, поняття двійкових чисел не зовсім чуже. Але якщо ви особисто не досліджували світ програмування, ви, мабуть, ніколи не працювали по суті з двійковими числами.
Оскільки комп'ютери не можуть самостійно "думати" або "приймати рішення", а можуть виконувати впорядковані вказівки з незмінною точністю, математики давно прийшли створити спосіб для комп’ютерів (або достатньо терплячих людей) робити додавання, віднімання та інші математичні операції, використовуючи лише цифри 0 та 1.
Але чи є спосіб поєднати ці дві ідеї, щоб отримати негативні числа? Це так просто, як сказати машині наклеїти невеликий турнік перед існуючим номером а-ля ручка та папір, або фактор «біти та байти» робить речі більш залученими?
Що таке двійкові числа?
Комп’ютери мають величезну обчислювальну потужність, і навіть старий кланкер може виконувати обчислення зі швидкістю, яка здається незрозумілою навіть для найбільш арифметично обдарованої людини. Але це не мозок, і єдиний спосіб змусити їх обробляти складну інформацію - це передати все можливе в один із двох станів, наприклад, ON або OFF.
У "комп'ютерній програмі" одиничний 0 або 1 позначається як a біт. До таких груп належать nybble (4 біти), добре відомий байт (8), слово (1) та довге слово (32).
Десяткові числа, які ви зазвичай бачите, як 492 і 35, є "базовими-10", оскільки вони містять 10 прогресивних символів (цифри від 0 до 9), які "перекинутися" на наступне місце ліворуч - наступне "потужність 10". Натомість двійкові числа містять лише два символи (цифри 0 та 1) і є "база-2". Кожне переміщення вліво від кінця числа є збільшенням числа двох: кінцеві цифри представляють 1, наступні 2, потім 4, 8, 16 і так далі.
- Десяткове число - це будь-яке число в системі base-10, не обов'язково число, що включає десяткову крапку.
Приклади двійкових чисел
Двійковий "nybble" 0101 має одиниці на 1 і 4 місці, а 0 на 2 і 8. Таким чином, його десятковий еквівалент дорівнює 1 + 4 = 5.
Подібним чином байт 1001 1100 еквівалентний 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
доповнення двійкового числа - це просто число з "переключеними" цифрами. Наприклад, доповнення 1001 1100 = 0110 0011.
Перетворення від’ємних чисел у двійкові
Перетворення негативного десяткового числа у двійкове число, мабуть, зовсім не схоже на інші числові перетворення ви виступали, бо ваш розум, попри всю свою порівняльну лінь, в більшості випадків набагато гнучкіший, ніж будь-який інший ЦП. Однак це простий процес.
Перетворення здійснюється за допомогою двійковий додаток двох, що вимагає від програміста вказівки комп’ютеру інтерпретувати будь-яке двійкове число, починаючи з 1, як від’ємне. Тоді програма будує відповідне додатне число в двійковому, бере його доповнення і додає одне.
Наприклад, з урахуванням числа −47, комп’ютер створить двійкове число для +47:
0001 1111
Доповненням до цього є:
1110 0000
Додавання одного до цього дає:
1110 0001
Зверніть увагу, що комп’ютер «підписав» ці цифри, щоб сприймати першу 1 як від’ємну та обробляти результати інакше, ніж просто складати потужності 2, зайняті символом 1.