Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Представление целых чисел без знака и со знаком



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

Таким образом, результат увеличения слова, например, 1100 на 1 станет слово 1101, а инверсия слова 1100 станет слово 0011

Продолжая последовательно увеличивать битовые слова приходим к результату, когда, увеличивая слово 1111 на 1, получаем слово 0000, что должно соответствовать 0, но в нашем случае это соответствует числу 1510 десятичной системы счисления. Т.е. получили неверную информацию, вернувшись в исходное состояние. Таким образом, числовая система ЭВМ является конечной и цикличной.

Рассмотрим другую ситуацию, когда за минус 1 примем кодовую комбинацию битов 1111, тогда числу минус 2 соответствует комбинация 1110, минус 3 соответствует 1101 и т.д. до минус 8, которой соответствует комбинация 1000. В этой системе четырех битовые комбинации, начинающиеся с 1 интерпретируются, как отрицательные числа. Это представление информации также конечно и циклично. Но введение числовой системы со знаком (представляемым старшим битом числа – крайний левый разряд) позволит использовать как положительные, так и отрицательные числа. При этом если число положительное, то его крайний левый разряд всегда имеет 0, который просто игнорируется при выполнении операций, а оставшиеся ТРИ разряда представляют собой двоичное число. Например, число 0110 представляет собой положительное двоичное число 110, которое соответствует положительному числу 610 десятичной системы счисления.

Для оценки отрицательного числа его необходимо в начале инвертировать и затем дополнить до двух. Например, определим величину отрицательного числа в слове 1001.

Производим инвертирование:

Дополняем до двух: (прибавляем к инвертированному числу 1)

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

Таким образом, в слове 1001 закодировано отрицательное число -710.

Индикаторы переноса и переполнения в ЭВМ

Для контроля выполнения арифметических операций в процессоре ЭВМ содержатся два индикатора:

- индикатор переноса;

- индикатор переполнения.

Каждый индикатор содержит один бит информации и может быть либо установлен в 1, либо сброшен в 0.

При установке индикатора переноса в 1 указывается на операцию переноса из знакового бита, а при установке индикатора переполнения в 1 указывается на операцию переноса в знаковый бит, рисунок 5.3.

перенос перенос в знаковый бит

Ячейки памяти ЭВМ
из зна-

кового

бита знаковый бит

Индикатор Индикатор

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

Рисунок 5.3 – Условия установки индикаторов переноса и переполнения

Например, правильность операции сложения в ЭВМ определяется из следующих условий:

1) Если машинные слова интерпретируются как числа без знака, то результат сложения двух слов будет арифметически правильным тогда и только тогда, когда не будет переноса из знакового бита:

Пример 1. Произошло сложение двух чисел

0101+0011=1000.

Перенос в знаковый бит

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

2) Если машинные слова интерпретируются как числа со знаком, то результат сложения:

а) двух положительных чисел будет арифметически правильным тогда и только тогда, когда не будет переноса в знаковый бит:

Пример 1. В результате выполнения операции произошел перенос в знаковый бит, т.е. индикатор переполнения установился в 1. Таким образом, операция в примере 1 для чисел со знаком неправильная;

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

Пример 2. Произошло сложение двух чисел:

1 1 0 1

+ 0 1 0 1

1 0 0 1 0

перенос из знакового бита перенос в знаковый бит

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

Операцию вычитания можно свести к операции сложения в силу того, что

А-В=А+(-В)

При этом состояние индикаторов также обеспечивает контроль правильности выполнения операций.


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 626; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь