Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
palivo_finalv0_2.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

15. Способи представлення від'ємних чисел

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

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

Виділяють три основних способи представлення від’ємних чисел:

  • прямий код, який утворюється з коду відповідного додатного числа шляхом встановлення знакового біта в 1;

  • обернений код, який утворюється шляхом заміни значення кожного біта на протилежне (інверсне);

  • додатковий код, який утворюється шляхом додавання 1 до молодшого біта оберненого коду.

Приклад. Розглянемо число -3. Двійковим еквівалентом відповідного додатного числа 3 є 00000011. Прямий код. Встановимо знаковий біт в 1 (нагадаємо, що 1 в старшому біті знакового числа сигналізує про його від’ємність). Всі інші біти залишаються без змін. В результаті вийде 10000011. Обернений код. Замінимо кожний біт на протилежний (1 на 0; 0 на 1); результатом буде 11111100. Додатковий код. Додамо 1 до оберненого коду; в результаті вийде 11111101. Зверніть увагу, що якщо розглядати послідовність 11111101 як беззнакове, а не як знакове число, вона інтерпретується як додатнє число 253.

Джерело: http://idndist.lp.edu.ua/moodle/library/books/SHEMOTEHNIKA%20IDN/l01/ml1.html

16. Додатковий код. Приклади

Дополнительный код (англ. two’s complement, иногда twos-complement) — наиболее распространённый способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.

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

  1. Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;

  2. Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.

Преимущества

  • Общие инструкции (процессора) для сложения, вычитания и левого сдвига для знаковых и беззнаковых чисел (различия только во арифметических флагах которые нужно проверять для контроля переполнения в результате).

  • Более удобная упаковка чисел в битовые поля.

  • Отсутствие числа «минус ноль».

Недостатки

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

  • В некоторых представлениях (например, двоично-десятичный код) или их составных частях (например, мантисса числа с плавающей запятой) дополнительное кодирование неудобно

  • Модуль наибольшего числа не равен модулю наименьшего числа. Например, для восьмибитного целого со знаком, максимальное число: 12710 = 011111112, минимальное число: -12810 = 100000002. Соответственно, не для любого числа существует противоположное. Операция изменения знака может потребовать дополнительной проверки.

  • Сравнение. В отличие от сложения, числа в дополнительном коде нельзя сравнивать как беззнаковые, или вычитать без расширения разрядности. Один из методов состоит в сравнении как беззнаковых исходных чисел с инвертированным знаковым битом.

Джерело: http://ru.wikipedia.org/wiki/ Дополнительный_код_(представление_числа)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]