Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Диапазон значений целых чисел со знаком

Поиск
Формат числа в байтах Диапазон
Запись с порядком Обычная запись
  -27 … 27 – 1 -128 … 127
  -215 … 215 – 1 -32768 … 32768
  -231 … 231 – 1 -2147483648 … 2147483647

 

В компьютерах применяются три формы записи (кодирования) целых чисел со знаком: прямой код, дополнительный код, обратный код.

Прямой код. Прямой n -разрядный двоичный код отличается от двоичного тем, что в нем отводится один, как правило, самый старший разряд для знака, а оставшиеся n-1 разрядов – для значащих цифр.

Значение знакового разряда равно 0 для положительных чисел, и 1 – для отрицательных.

Пример 12. Представим число 110 = 12 в прямом коде.

Номер разрядов                
Биты числа 0              

Знак числа “+”

 

Пример 13. Представим число -110 в прямом коде.

Номер разрядов                
Биты числа 1              

Знак числа “-”

Дополнительный код. Использование чисел со знаком (прямого кода представления чисел) усложняет структуру компьютера. Поэтому в современных компьютерах, как правило, отрицательные числа представляются в виде дополнительного или обратного кода, что при суммировании двух чисел с разными знаками позволяет заменить вычитание на обычное сложение и упростить тем самым конструкцию арифметико-логического устройства компьютера.

Можно дать простое правило для получения дополнительного кода двоичных чисел:

1. Получить инверсию заданного числа (все его 0 заменить на 1, а все 1 – на 0):

0 000 0010 1100 0101 число

1 111 1101 0011 1010 инверсия числа

2. Образовать дополнительный код заданного числа путем дополнения 1 к инверсии этого числа.

1 111 1101 0011 1010 инверсия числа

+ 1 слагаемое 1

1 111 1101 0011 1011 дополнительный код числа

Проверим правильность перевода:

+
0 000 0010 1100 0101 число

1 111 1101 0011 1011 дополнительный код числа

10 000 0000 0000 0000 0

Так как перенос старшего разряда не учитывается, то результат суммирования равен 0, что подтверждает правильность преобразования.

Старший бит дополнительного кода двоичных чисел выполняет функцию знака числа, то есть равен 0 для положительных чисел и 1 – для их дополнений (отрицательных чисел). При этом положительные числа в дополнительном коде изображаются так же, как и в прямом – двоичными кодами с цифрой 0 в знаковом разряде.

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

Пример 14. Представим число -110 в обратном коде.

Число: -1

Код модуля числа: 0000 0001

Обратный код числа: 1111 1110

Пример 15. Представим число -12710 в обратном коде.

Число: -127

Код модуля числа: 0111 1111

Обратный код числа: 1000 0000

Таким образом, положительные числа в прямом, обратном и дополнительных кодах изображаются одинаково – двоичными кодами с цифрой 0 в знаковом разряде.

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

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 313; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.148.106.31 (0.008 с.)