
Лекции последние с презентациями и вопросами / Лекция 4. Кодирование информации
.docЛекция 4. Основы машинной арифметики с двоичными числами.
Любая информация (числа, команды, записи и т. п.) представляется в ЭВМ в виде двоичных кодов фиксированной или переменной длины. Отдельные элементы двоичного кода, имеющие значение 0 или 1, называют разрядами или битами. Двоичный код состоящий из 8 разрядов носит название байта. Для записи чисел также используют 16-разрядный формат (машинное слово), 8-разрядный формат (полуслово) и 32-разрядный формат (двойное слово).
В ПК могут обрабатываться поля постоянной и переменной длины.
Поля постоянной длины:
слово - 2 байта
двойное слово - 4 байта
полуслово - 1 байт
расширенное слово - 8 байт
2.1 Коды чисел.
В ЭВМ в целях упрощения выполнения арифметических операций применяют специальные коды для представления чисел. Использование кодов позволяет свести операцию вычитания чисел к арифметическому сложению кодов этих чисел. Применяются прямой, обратный и дополнительный коды чисел. Прямой код используется для представления отрицательных чисел в запоминающем устройстве ЭВМ, а также при умножении и делении. Обратный и дополнительный коды используются для замены операции вычитания операцией сложения, что упрощает устройство арифметического блока ЭВМ. К кодам выдвигаются следующие требования:
1) Разряды числа в коде жестко связаны с определенной разрядной сеткой.
2) Для записи кода знака в разрядной сетке отводится фиксированный, строго определенный разряд.
Например, если за основу представления кода взят один байт, то для представления числа будет отведено 7 разрядов, а для записи кода знака один разряд.
Прямой код. Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1.
Знаковым разрядом обычно является крайний разряд в разрядной сетке. В дальнейшем при записи кода знаковый разряд от цифровых условимся отделять запятой. Если количество разрядов кода не указано будем предполагать, что под запись кода выделен один байт.
Пример. В случае, когда для записи кода выделен один байт, для числа +1101 прямой код 0,0001101, для числа -1101 прямой код 1,0001101.
Обратный код. Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Пример.
Для числа +1101 прямой код 0,0001101; обратный код 0,0001101.
Для числа -1101 прямой код 1,0001101; обратный код 1,1110010.
Дополнительный код. Дополнительный код положительного числа совпадает с прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы.
Пример.
Для числа +1101:
Прямой код |
Обратный код |
Дополнительный код |
0,0001101 |
0,0001101 |
0,0001101 |
Для числа -1101:
Прямой код |
Обратный код |
Дополнительный код |
1,0001101 |
1,1110010 |
1,1110011 |
Пример 4.9. Структурно запись числа -193(10)=-11000001(2) в разрядной сетке ПК выглядит следующим образом.
Число с фиксированной запятой формата слово со знаком:
|
Знак числа |
Абсолютная величина числа |
||||||||||||||
N разряда |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Число |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Число с плавающей запятой формата двойное слово:
|
Знак числа |
Порядок |
Мантисса |
|||||||||||||||||
N разряда |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
... |
1 |
0 |
Число |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
... |
0 |
0 |
Двоично-кодированные десятичные числа могут быть представлены в ПК полями переменной длины в так называемых упакованном и распакованном форматах.
В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа (1100 - знак "+" и 1101 - знак "-").
Структура поля упакованного формата:
Цф |
Цф |
Цф |
Цф |
. . . |
Цф |
Знак |
Здесь и далее: Цф - цифра,Знак - знак числа.
Упакованный формат используетсяобычно в ПК при выполнении операций сложения и вычитания двоично-десятичных чисел.
В распакованном формате для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты (зона) каждого байта (кроме самого младшего) в ПК заполняются кодом 0011. (в соответствии с ASCII-кодом), а в младших (левых) полубайтах обычным образом кодируются десятичные цифры. Старший полубайт (зона) самого младшего (правого) байта используется для кодирования знака числа.
Структура поля распакованного формата:
Зона |
Цф |
Зона |
Цф |
. . . |
Зона |
Цф |
Знак |
Цф |
Распакованный формат используется в ПК при вводе-выводе информации в ПК, а также при выполнении операций умножения и деления двоично-десятичных чисел.
Пример 4.10. Число-193(10)=-000110010011(2-10) в ПК будет представлено:
в упакованном формате
0001 |
1001 |
0011 |
1101 |
в распакованном формате
0011 |
0001 |
0011 |
1001 |
1101 |
0011 |
КОДЫ ASCII
Распакованный формат представления двоично-десятичных чисел (иногда его называют "зонный") является следствием использования в ПК ASCII-кода для представления символьной информации.
Код ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение (табл. 4.3).Основной стандарт для кодирования символовиспользует шестнадцатеричные коды 00-7F,расширение стандарта - 80 -FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта кодируются символы псевдографики и буквы национального алфавита (естественно, в разных странах разные).
Таблица 4.3. Таблица кодов ASCII