Рис. 4.7. Пример перевода десятичного числа в
систему счисления
Перевод чисел со знаком
До сих пор предполагалось, что числа положительные. А как представляются
в компьютере числа со знаком?
Положительные целые со знаком — это 0 и все положительные числа.
Отрицательные целые со знаком — это все числа, меньшие 0. Отличительным
признаком числа со знаком является особая трактовка старшего бита поля, пред-
ставляющего число. В качестве поля могут выступать байт, слово или двойное слово.
Естественно, что физически этот бит ничем не отличается от других — все зависит от
команды, работающей с данным полем. Если в ее алгоритме заложена возможность
работы с целыми числами со знаком, то команда будет по-особому трактовать стар-
ший бит поля. Если старший бит равен 0, число считается положительным и его зна-
чение вычисляется по правилам, которые мы рассмотрели ранее. Если старший бит
равен 1, число считается
а это предполагает, что оно записано в так
называемом
коде. Разберемся в том, что он собой представляет.
84 Глава 4. Системы счисления
Дополнительный код некоторого отрицательного числа представляет собой
результат инвертирования (замены 1 на 0 и наоборот) каждого бита двоичного
числа, равного модулю" исходного отрицательного числа плюс единица. К приме-
ру, рассмотрим десятичное число
Модуль данного числа в двоичном пред-
ставлении равен
Сначала нужно дополнить это значение слева нулями
до нужной размерности — байта, слова и т. д. В нашем случае дополнить нужно
до слова, так как диапазон представления знаковых чисел в байте составляет
-128...127. Следующее действие — получить двоичное дополнение. Для этого все
разряды двоичного числа нужно инвертировать:
111 111
Теперь прибавляем единицу:
+
=
Результат преобразования равен
Именно так и представ-
ляется число
в компьютере.
При работе с числами со знаком от вас наверняка потребуется умение выпол-
нять обратное действие — имея двоичное дополнение числа, определить значение
его модуля. Для этого необходимо выполнить два действия.
1. Выполнить инвертирование битов двоичного дополнения.
2. К полученному двоичному числу прибавить двоичную единицу.
К примеру, определим модуль двоичного представления числа
Сначала инвертируем биты:
ИНН
Добавляем двоичную единицу:
+
=
= |-185|.
Теперь мы готовы разговаривать с компьютером на его языке, состоящем из
команд и данных. В следующей главе мы напишем первую программу на ассемб-
лере, разбирая которую, мы сможем применить знания, полученные в этой и пре-
дыдущих главах.
Итоги
ж Системы счисления подразделяются на позиционные и непозиционные. Как
в позиционных, так и в непозиционных системах счисления используется опре-
деленный набор символов — цифр, последовательное сочетание которых обра-
зует число.
и Специфика работы программиста предполагает хорошее владение счетом в трех
системах счисления: двоичной, шестнадцатеричной и десятичной. При этом
программист должен достаточно уверенно переводить числа из одной системы
счисления в другую.
т Числа со знаком представляются в компьютере особым образом: положитель-
ные числа — в виде обычного двоичного числа, а отрицательные — в дополни-
тельном коде.
Do'stlaringiz bilan baham: |