- •2, 8 И 16-чная сс
- •Понятие информации.
- •Мера информации.
- •2) Количество информации – «I» – вероятностный (энтропийный) подход
- •Мера информации семантического уровня.
- •Мера информации прагматического уровня.
- •Качество информации.
- •Виды и формы представления информации в информационных системах.
- •Позиционные системы счисления
- •Перевод из одной системы счисления в другую
- •Перевод целых чисел
- •Перевод правильных дробей
- •Представление числовой информации в эвм
- •Выполнение арифметических операций над целыми числами.
- •Обратный код
- •Смещенный код и код грея.
- •Запись вещественного числа в эвм
- •Примеры представления числа
- •Выполнение арифметических действий над вещественными числами.
Обратный код
Также используется для представления отрицательных чисел. Он получается инвертированием всех цифр двоичного кода абсолютной величины числа (модуля числа). Отметим, что все операции с отрицательными числами выполняются в формате машинного слова. Это значит, что к двоичному числу слева дописываются нули до нужного количества разрядов. Например, для 8-миразрядного машинного слова 00000001: 11111110. (данное число является модулем числа -1)
Приведем пример к данной формуле:
10102
– обратный код
A10 = 1*(-23 + 1) + [0*22 + 1*21 + 0*20] = -5
Для положительных чисел aзн=0, и представление числа полностью совпадает с прямым и дополнительным кодом. Таким образом, положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково, то есть двоичными кодами в нулем в знаковом разряде. Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код, и в таком виде хранятся и участвуют в различных операциях. При выводе таких чисел происходит обратное преобразование в отрицательные десятичные.
Выполнение арифметических операций (сложение и вычитание)
Как уже отмечали, вместо операции «вычитание» производится сложение обратных или дополнительных кодов.
При сложении двух чисел X и Y имеет место четыре основных и два особых случая.
X Y > 0
При суммировании складываются все разряды, включая разряд знака.
X > 0 Y < 0 |X|<|Y|
3 + (-10) = (-7) (-10)1110101 00000011 + 11110101 = 11111000 (обратный код -7)
X > 0 Y < 0 |X|>|Y|
10 + (-3) = 7 (-3)11111100 00001010 + 11111100 = 00000110 + 1 = 00000111
Машина исправляет полученный изначально некорректный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.
X < 0 Y < 0
(-3) + (-7) = (-10) 11111100 + 11111000 = 11110100 + 1 = 11110101
Полученный первоначально некорректный результат -11 вместо -10 машина исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части (то е без знаковой) числа инвертируются.
Рассмотрим два случая переполнения.
X Y > 0
65
+ 97 = 162 01000001+ 01100001 = (1)0100010
Здесь происходит несовпадение знака суммы и знаков слагаемых.
X Y < 0
(-63) + (-95) = (-158) 11000000 + 10100000 = (0)1100000
Здесь так же знак суммы не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.
X Y > 0 X + Y ≤ 215
X = 1594 Y = 17563 X+Y=19157
0000 0110 0011 1010 + 0100 0100 1001 1011 = 0100 1010 1101 0101
|X| < |Y|
X = 1594 Y = -17563 X+Y=-15969
0000 0110 0011 1010 + 1011 1011 0110 0101 = 1100 0001 1001 1111
|X| > |Y|
X = 17536 Y = -1594 X+Y=15969
0100 0100 1001 1011 + 1111 1001 1100 0110 = 0011 1110 0110 0001
В последнем случае перенос не учитывается!
X Y < 0 |X| + |Y| < 215
X = -1594 Y = -17563 X+Y=-19157
1111 1001 1100 0110 + 1011 1011 0110 0101 = 1011 0101 0010 1011
Перенос опять же не учитывается!
X>0 Y>0 |X| + |Y| > 215
X = 17563 Y = 19157
0100 0100 1001 1011 + 0100 1010 1101 0101 = 1000 1111 0111 0000
Ответ некорректен ввиду переполнения разрядной сетки. Инвертируем ( +1)
X<0 Y<0 |X| + |Y| > 215
X = -17563 Y = -19157
1011 1011 0110 0101 + 1011 0101 0010 1011 = 0111 0000 1001 0000
Ответ некорректен ввиду переполнения разрядной сетки.
В 5 и 6 случаях ограниченная разрядность чисел приводит к искажению не только величины, но и знака результата. Это исправляется добавлением к результату (случай 5) или вычитанием из него (случай 6) числа 216.
Для обеспечения корректности вычислений перед суммированием необходимо анализировать знаки слагаемых и результаты. Разные знаки слагаемых или совпадение знаков слагаемых со знаком суммы свидетельствует о том, что результат правильный.
Для контроля за выполнением арифметических операций в процессоре содержатся два индикатора: переноса и переполнения. Каждый индикатор принимает либо 0, либо 1. Таким образом, после завершения арифметической операции, в которой происходит перенос в старший бит, индикатор переполнения принимает значение 1. Нет переноса – значение 0. Аналогично работает индикатор переполнения.
Таким образом, пользователь имеет возможность контролировать правильность выполнения арифметических операций.
