Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Переполнение в двоичной арифметике: влияние знакового бита на сложение

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

В примере ниже пять бит под модуль и шестой (левый) — знаковый. С пятью бит модуля можно представить 2⁵ = 32 целых значения, от 0 до максимума. Следовательно, наибольшее положительное — +31₁₀ (011111₂), наименьшее — –32₁₀ (100000₂).

Ограничения шестибитового поля

Складывая два числа в одном шестибитовом поле, результат может выйти за диапазон –32 … +31. Например, +17₁₀ + +19₁₀ = +36₁₀, что не помещается в пять бит модуля.

Переполнение в двоичной арифметике: влияние знакового бита на сложение

Двоичный ответ 100100₂ интерпретируется как –28₁₀, если шестой бит трактуется как –32₁₀. Очевидно, это неверно; ошибка переполнения, так как истинная сумма выходит за пределы поля. Отбрасывание левого «переносного» бита даёт неверный результат.

Сложение двух отрицательных чисел даёт похожую проблему. –17₁₀ + –19₁₀ должно быть –36₁₀, но в шестибитовом поле результат — положительное 28, снова переполнение.

Переполнение в двоичной арифметике: влияние знакового бита на сложение

Использование седьмого бита для знака

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

Переполнение в двоичной арифметике: влияние знакового бита на сложение

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

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

Эти правила обнаружения переполнения реализованы в цифровых сумматорах и являются базовым понятием компьютерной арифметики.

СВЯЗАННЫЕ РАБОЧИЕ ЛИСТЫ:

Промышленные технологии

  1. Электроника: практичная наука для всех
  2. Настройка домашней электроника-лаборатории: инструменты, рабочая зона и расходники
  3. Мастерство вольтметра: точное измерение напряжения стало простым
  4. 3-битный двоичный счетчик на таймере 555 и триггерах 4027
  5. Десятичная и двоичная системы: разрядный вес, эффективность и преобразование
  6. Восьмеричная и шестнадцатеричная системы: практическое руководство для инженеров
  7. Двоичное вычитание с использованием двухкратного дополнения
  8. Переливные трубы: функция, значение для безопасности и применение
  9. Эффективная сборка ARM-контейнеров на x86 системах
  10. Создание первого Go-приложения на PLCnext: руководство для начинающих