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

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

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

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

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

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

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

1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например:

2. Обратный код. Получается инвертированием всех цифр прямого кода абсолютной числа, за исключением разряда знака: нули заменяются единицами, а единицы — нулями. Например:

3. Дополнительный код. Получается из обратного кода при помощи прибавления единицы к его младшему разряду. Например:

 

Алгоритм перевода дополнительного кода отрицательного числа в прямой аналогичен алгоритму перевода прямого кода в дополнительный.

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

  1. Напишите конспект прочитанного текста.
  2. Сформулируйте и запишите правила перевода прямого кода отрицательного числа в дополнительный и дополнительного в прямой.

 

1. Запишите числа в прямом, обратном и дополнительном коде (формат 1 байт): а) 31; б) -63; в) 65; г) -126. 2. Найдите десятичные представления чисел, записанных в дополнительном коде: а) 11111000; б) 10011011. 3. Запишите дополнительный код числа, интерпретируя его как восьмибитовое целое со знаком: а) 4310; б) -4710; в) -10210.

 

Тема 4.2 Арифметические действия с целыми числами

Основные понятия: прямой код числа, обратный код числа, дополнительный код числа, переполнение разрядной сетки формата числа.

Условные обозначения:

- задания до чтения текста - задания во время чтения - задания после чтения

 

Прочитайте текст. Во время чтения делайте пометки на полях, выделяя главное.

В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

При сложении обратных кодов чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:

Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

Полученный первоначально неправильный результат (обратный код числа –1110 вместо обратного кода числа –1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы.

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

10001010 = –1010.

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

5. А и В положительные, сумма А+В больше, либо равна 2n–1, где n – количество разрядов формата чисел (для однобайтового формата n=8, 2n–1 = 27 = 128). Например:

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n–1. Например:

Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.

Все эти случаи имеют место и при сложении дополнительных кодов чисел:

 

Умножение и деление

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 1100112 на 1011012.

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

  1. Напишите конспект прочитанного текста.
  2. Проиллюстрируйте сложение дополнительных кодов чисел, рассмотрев четыре основных и два дополнительных случая (по аналогии с обратными кодами).

 

Выполните действия, используя обратный и дополнительный коды: а) 9 - 2; б) 2 - 9; в) - 5 - 7

 



"7-49342.php">10
  • Далее ⇒
  •