1.
Цель работы
Изучить прямой, обратный и дополнительный код, способы
кодирования
информации. Получить навыки по получению прямого кода, переводу его в обратный,
дополнительный и по выполнению арифметических операций с числами,
представленными в обратном и дополнительном коде.
2.
Теоретический материал
Прямой код.
В знаковый разряд помещается
цифра знака, а в разряды цифровой части числа — двоичный код его абсолютной
величины.
Обратный код.
Получается инвертированием всех
цифр двоичного кода абсолютной величины числа, включая разряд знака: нули
заменяются единицами, а единицы — нулями.
Пример: число -1, модуль 0 0000001, обратный код 1 1111110
Пример: число -127, модуль 0 1111111 , обратный код 1 0000000
Дополнительный код.
Получается образованием
обратного кода с последующим прибавлением единицы к его младшему разряду.
число: -1 = дополнительный код 1 1111111
число: -127 = дополнительный код 1 0000001
Сложение обратных кодов
В большинстве компьютеров
операция вычитания не используется. Вместо нее производится сложение обратных
или дополнительных кодов уменьшаемого и вычитаемого. Это позволяет существенно
упростить конструкцию АЛУ.
При сложении чисел А и В имеют
место четыре случая.
А и В положительные.
При суммировании складываются все разряды, включая разряд знака. Так как
знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже
равен нулю. Например:

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

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

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

Полученный первоначально
неправильный результат (обратный код числа -1110 вместо обратного
кода числа -1010) компьютер исправляет переносом единицы из знакового
разряда в младший разряд суммы. При переводе результата в прямой код биты
цифровой части числа инвертируются: 1 0001010 = -1010.
При сложении может возникнуть
ситуация, когда старшие разряды результата операции не помещаются в отведенной
для него области памяти. Такая ситуация называется переполнением разрядной сетки
формата числа. Случай переполнения возможен и для обратных и для дополнительных
кодов.
Сложение дополнительных
кодов
А и В положительные.

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

Получен правильный результат в
дополнительном коде. При переводе в прямой код биты цифровой части результата
инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1
0000111 = -710.
А положительное, B
отрицательное и по абсолютной величине меньше, чем А.

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

Получен правильный результат в
дополнительном коде. Единицу переноса из знакового разряда компьютер
отбрасывает.
Арифметические операции с
вещественными числами
Сложение.
Сложить двоичные нормализованные
числа 0.10111 . 2-1 и 0.11011 . 210. Разность порядков
слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа
сдвигается на три разряда вправо:
0.00010111 ·
210 + 0.11011 · 210
=
0.11101111 ·
210.
Пример:
X1=0.87654 * 101,
X2=0.94567*102.
Пусть под запись мантиссы отводится 5 разрядов.
1.
Δk=1,
k1<k2
следовательно
k1=k2=2
(уравняли порядки)
2.
мантиссу числа
X1 сдвигаем на один разряд влево (пропадет 4)
3.
новая мантисса
равна 0,94567+0,08765=1,03332
4.
мантисса вышла за
допустимый интервал >1.
5.
нормализуя,
получим мантиссу 0,10333 (теряем 2) и порядок увеличиваем на 1.
Ответ:
X=0,10333*103 = 103,3324.
Умножение.
Умножение производится по
правилу – мантиссы перемножаются, а порядки складываются. Если нужно, то
полученное число нормализуется. Пример:
(0.11101*2101)*(0.1001*211)=(0.11101*0.1001)*2(101+11)=0.100000101*21000
Деление.
Деление производится по правилу
– мантиссы делятся (делимое на делитель), а порядки вычитаются (порядок делителя
из порядка делимого). Если нужно, то полученное число нормализуется
0.1111*2100 : 0.101*211 = (0.1111 : 0.101)*2(100-11)
= 1.1*21 = 0.11*210.
Кодирование
Алфавит
– множество знаков, в котором определен их порядок (общеизвестен порядок знаков
в русском алфавите: А, Б,..., Я)
Источник представляет
сообщение в алфавите, который называется первичным, далее
это сообщение попадает в
устройство, преобразующее и представляющее его во вторичном алфавите.
Код
– правило, описывающее соответствие знаков (или их сочетаний) первичного
алфавита знаком (их сочетаниями)
вторичного алфавита.
Кодирование
– перевод информации,
представленной сообщением в первичном алфавите, в последовательность кодов.
Декодирование –
операция обратная кодированию.
Кодер –
устройство,
обеспечивающее выполнение операции кодирования.
Декодер –
устройство, производящее
декодирование.
Операции кодирования и
декодирования называются обратимыми, если их последовательное
применение обеспечит возврат к исходной информации без каких-либо ее потерь.
Таблица, в которой
устанавливается однозначное соответствие между символами и их порядковыми
номерами, называется таблицей кодировки.
Для разных типов ЭВМ
используют различные таблицы кодировки:
-
ANSI
- (American National Standards Institute).
-
ASCII
- (American Standard Cod for Information Interchange).

Таблица кодировки
ASCII
3.
Порядок выполнения работы
1.
Изучить предлагаемый теоретический
материал.
2.
Выполнить следующие
задания:
1.
Запишите уменьшающийся ряд чисел +3, +2, ..., -3 в однобайтовом формате:
- прямом коде;
- обратном коде;
- дополнительном
коде.
2.
Запишите числа в прямом коде (формат 1 байт):
а) 31;
б) -63; в) 65;
г) -128.
3.
Запишите числа в обратном и дополнительном кодах (формат 1 байт):
а) -9; б) -15; в)
-127; г) -128.
4. Найдите десятичные представления чисел, записанных в дополнительном
коде:
а) 1 1111000; б) 1 0011011; в) 1 1101001; г) 1 0000000.
5.
Найдите десятичные представления чисел, записанных в обратном коде:
а) 1 1101000; б) 1 0011111; в) 1
0101011; г) 1 0000000.
6.
Сложить числа, представленные в двоичной системе счисления 0.0101*2100
+ 101,0011.
7.
Умножить числа, представленные в двоичной системе счисления (0.101*211)*(0.11*211).
8.
Разделить числа, представленные в двоичной системе счисления (0.101*2110):(0.11*211).
9.
Выполните вычитания чисел путем сложения их обратных (дополнительных)
кодов в формате 1 байт. Укажите, в каких случаях имеет место переполнение
разрядной сетки:
а) 9 - 2;
б) 2 - 9;
в) -5 - 7;
г) -20 - 10;
д) 50 - 25;
е) 127 - 1;
ж) -120 - 15;
з) -126 - 1;
и) -127 - 1.
10. Дешифруйте данный текст, используя таблицу
ASCII-кодов.
a)
8A AE AC AF EC EE E2 A5 E0
в)
50 72 6F 67 72 61 6D
г)
84 88 91 8A 8E 82 8E 84
д)
43 4F 4D 50 55 54 45 52
11. Зашифруйте
свою фамилию, используя таблицу ASCII – кодов.
4.
Содержание отчета
В отчете следует указать:
-
Цель работы
-
Введение
-
Программно-аппаратные средства, используемые при выполнении работы.
-
Основную часть (описание самой работы), выполненную согласно требованиям к
результатам выполнения лабораторного практикума.
-
Заключение (выводы).
-
Список используемой литературы.
5.
Литература
1.
Могилев А.В., Пак Н.И., Хенкер Е.К.
Информатика. Учебное пособие. – М.: Академия, 2004, 3-е издание.
2.
Могилев А.В., Пак Н.И., Хенкер Е.К.
Практикум по информатике. - М.: Академия, 2005, 2-е изд.
3.
Шауцукова Л.З. Информатика
http://book.kbsu.ru,
2002.
4.
Сырецкий Г.А. Информатика. Фундаментальный курс.
В 2
томах. – БХВ-Петербург,
2007.
5.
Каймин В.А. Информатика. – М.: Инфра-М.
2001, 2-е изд., доп. и перераб.
6.
Острейковский В.А., Полякова И.В.
Информатика. Теория и практика. – М.: Оникс, 2008.
7.
Степанов А.Н. Информатика. Учебник для
вузов. – СПб.: Питер, 2006, 4-е изд.
8.
Рыжиков Ю.И.
Информатика. Лекции и практикум. – СПб.: Корона принт.
2000.
9.
Андреева Е., Фалина И. Информатика. Системы
счисления и компьютерная арифметика. – М.: Лаборатория Базовых Знаний. 1999.
10. Л.З.
Информатика
http://book.kbsu.ru,
2002.
11. В.М.
Введение в информатику http://www.intuit.ru/department/informatics/intinfo,
2006.
12. В.М.
Введение в информатику. Практикум http://www.intuit.ru/department/informatics/intinfopr,
2008.
13. Е.А.
Практическая информатика http://www.intuit.ru/department/se/pinform, 2006
14. Н.Н.
Стили и методы программирования http://www.intuit.ru/department/se/progstyles,
2005
|