пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Особенности представления отрицательных чисел.

Для представления отрицательных целых чисел используется дополнительный код.

Дополнительным кодом двоичного числа X в N-разрядной ячейке является число, дополняющее его до значения 2.

Получить дополнительный код можно следующим путем:

записать внутреннее представление положительного числа X;

записать обратный код этого числа заменой во всех разрядах 0 на 1 и 1 на 0;

к полученному числу прибавить 1

Определим по этим правилам внутреннее представление числа -562810 в 32-разрядной ячейке. 


  1. 00000000 00000000 00010101 1111110
  2. 11111111 11111111 11101010 00000011

  3. 11111111 11111111 11101010 00000100

Шестнадцатеричная форма результата:

FF FF ЕА 04.

Старший разряд в представлении любого отрицательного числа равен 1. Следовательно, он указывает на знак числа и поэтому называется знаковым разрядом.

Почему отрицательные числа представляются в дополнительном коде? Дело в том, что в этом случае операция вычитания двух чисел сводится к сложению с дополнительным кодом вычитаемого, и процессору достаточно уметь лишь складывать числа. В самом деле:

А - В = А + (-В).

Если значение (-В) будет иметь форму дополнительного кода, то в памяти ЭВМ получится правильный результат.

Проверим, действительно ли в ячейке памяти получится О в результате сложения числа 5628 с числом -5628 в форме дополнительного кода.

00000000 00000000 00010101 11111100 + 11111111 11111111 11101010 000000100 =

1 00000000 00000000 00000000 00000000

Что и требовалось доказать! Единица в старшем разряде, получаемая при сложении, выходит за границу разрядной сетки машинного слова и исчезает.

Двоичное 32-разрядное число 231 является «отрицательным самому себе». Получим его дополнительный код:

Определим по этим правилам внутреннее представление числа -562810 в 32-разрядной ячейке. 

  1. 10000000 00000000 00000000 00000000
  2. 01111111 11111111 11111111 11111111
  3. 10000000 00000000 00000000 00000000

Полученный код используется для представления значения

-231 = -2147483648.

Следовательно, диапазон представления целых чисел в 32-разрядном машинном слове:

-231 <= Х <= 231-1,

или

-2147483648 <= Х <= 2147483647.

В общем случае для N-разрядного машинного слова этот диапазон такой:

-2N-1 <= X <= 2N-1-1.

В современных компьютерах часто используется 16- разрядное представление целых чисел. В этом случае их диапазон следующий:

-215 <= Х <= 215-1,

или

-32768 <= Х <= 32767.

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

Прямой код отрицательных чисел

Заметим, что ноль имеет два представления в прямом и обратном коде, а в дополнительном коде представление нуля единственно.  


21.06.2017; 14:41
хиты: 73
рейтинг:0
Точные науки
информатика
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь