Altifigence Academy

14 / 36 · Теория

Знаковые числа и переполнение

Интерпретируйте биты как беззнаковое число и дополнительный код.

Цели урока

  • Интерпретируйте биты как беззнаковое число и дополнительный код.

Интерпретация битов

Четыре бита 1111 — это беззнаковое 15 или −1 в дополнительном коде. Знаковый диапазон N бит: от −2^(N−1) до 2^(N−1)−1. Для отрицания инвертируйте биты и прибавьте один при той же ширине: +3, 0011→1100→1101, то есть −3. Увеличение ширины требует знакового расширения.

Перенос и переполнение

В четырёх знаковых битах 7+1 даёт 1000, то есть −8. Два положительных числа дали отрицательное — знаковое переполнение без последнего переноса. Для −1+1 сумма 1111+0001 имеет перенос, но низшие 0000 верны. Согласуйте знаковость портов и переменных перед вычислением и сравнением.

Попробуйте сами

Прочитайте 1000 как беззнаковое и знаковое число.

Прочитать объяснение

Беззнаковое 8; в дополнительном коде −8.

Выбор действует в этом браузере. Его можно изменить внизу страницы.