Представление числовой информации в памяти ПК
Прямой код
При выполнении арифметических операций в ПК применяют специальные коды для представления чисел (с целью упрощения арифметических операций): прямой, обратный и дополнительный коды чисел. Например, упрощается определение знака результата операции, вычитание есть сложение кодов, облегчено определение переполнения разрядной сетки. Числа хранятся в ячейках памяти. Ячейки иметь разную емкость (разрядность). Современные запоминающие устройства обычно имеют размер ячейки памяти равным одной из степеней двойки: 8 бит, 16 бит, 32 бита, 64 бита. Прямой код это само число, записанное в двоичной системе счисления. Для хранения знака используется первый бит числа. Если число положительное, то первый бит равен 0, если число отрицательное 1. Недостающие разряды ячеек слева заполняются нулями. Пример: Записать число –11 в прямом коде. –1110 = 10112
ПК = | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
Пример: Записать число 10 в прямом коде.
1010 = 10102
ПК = | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Обратный код
Прямой код используется при хранении чисел в памяти ПК, а также при выполнении операций умножения и деления, но формат представления чисел в прямом коде неудобен для использования в вычислениях, поскольку сложение и вычитание положительных и отрицательных чисел выполняется по-разному, а потому требуется анализировать знаковые разряды чисел. Поэтому прямой код практически не применяется в арифметических операций над целыми числами. Вместо этого формата широкое распространение получили форматы представления чисел в обратном и дополнительном кодах.
Обратный код - положительного числа совпадает с прямым, а при записи отрицательного числа все его цифры, кроме цифры, изображающей знак числа, заменяются на противоположные.
Пример: Записать число –11 в обратном коде.
ПК = | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
ОК = | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
Пример: Записать число 10 в обратном коде.
ПК = | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
ОК = | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Дополнительный код
Дополнительный код положительного числа совпадает с прямым, а код отрицательного числа образуется как результат увеличения на 1 его обратного кода.
Пример: Записать число –11 в дополнительном коде.
ОК = | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
+ 1 | ||||||||
ДК = | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
Пример: Записать число 10 в дополнительном коде.
ОК = | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
ДК = | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Основным достоинством дополнительного кода является то, что в нем единообразно реализуются операции сложения чисел разных знаков, а операцию вычитания можно свести к операции сложения заменой знака вычитаемого на обратный.
Операция сложения в ОК и ДК
Все арифметические операции в ПК сводятся к операции сложения.
Правила выполнения сложения:
Сложение чисел в обратном и дополнительном кодах выполняется с использованием обычного правила арифметического сложения многоразрядных чисел.
При поразрядном сложении чисел разряды, изображающие знаки чисел рассматриваются как равноправные разряды двоичного числа.
При сложении чисел в дополнительном коде единица переноса из старшего разряда игнорируется (теряется), а в обратном коде эту единицу надо прибавить к младшему разряду результата.
Пример: Сложить в ОК и ДК числа 1210 и –510.
ПК = | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
ОК = | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
ДК = | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
ПК = | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
ОК = | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 | 0 | 1< | 1 |
2.6. Представление символьной информации в памяти ПК
Для кодирования одного символа используется количество информации, равное 1 байту, или 8 бит. Таким образом, всего можно закодировать 256 символов.
Такое количество символов достаточно для представления текстовой информации, включая прописные (заглавные) и строчные буквы русского и латинского алфавита, цифры и знаки.
Кодирование заключается в том, что каждому символу ставиться в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертаниям, а ЭВМ — по их кодам.
Для кодирования символов используется кодовая таблица ASCII (American Standard Code for Information Interchange) — американская стандартная кодировочная таблица.
ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов.
Структура таблицы ASCII:
0 |
1 |
|
127 |
128 |
|
254 |
255 |
|
|
Международная таблица ASCII |
|
|
Кодовая страница |
|
|
0..31 Специальные символы
32 Пробел
48..57 Цифры [0..9]
65..90 Заглавные латинские буквы [A..Z]
97..122 Строчные латинские буквы [a..z]
Кодовая страница — это расширение таблицы ASCII для определенного языка.
Кодовые таблицы для русского языка:
CP866 для систем MS-DOS;
CP1251 для систем Windows (Win-1251);
KOI8 для систем Unix;
MacCyrillic для систем MacOS.
В настоящее время широкое распространение получил стандарт Unicode, позволяющий передавать знаки практически всех языков мира. Выделяют два типа кодировки UTF-8 (один символ кодируется 1 байтом) и UTF-16 (один символ кодируется 2 байтами).
Задание 34. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 16-битном коде Unicode, в 8-битную кодировку КОИ-8. При этом информационное сообщение уменьшилось на 480 бит. Какова длина сообщения в символах?
Дано: i1 = 16 бит, i2 = 8 бит, I1= x, I2 = x - 480. K - ?
Решение: К = I1/i1, К = I2/i2, х/16 = х-482 / 8, 8*х = 16 * (x - 480), х= 2х - 960, х = 960 бит, К = 960/16 = 60 символов в сообщении