- •Лекция 2. Системы счисления
- •Десятичная система счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробной части числа
- •Виды двоичных кодов
- •Целочисленные двоичные коды Беззнаковые двоичные коды
- •Прямые знаковые двоичные коды
- •Знаковые обратные двоичные коды.
- •Знаковые дополнительные двоичные коды.
- •Запись десятичных чисел (двоично-десятичный код)
- •Представление чисел в двоичном коде с плавающей запятой
- •Ieee 753-1985 определяет четыре формата представления чисел с плавающей запятой:
- •Формальное представление нормализованных чисел в формате ieee 754.
- •Формула вычисления десятичных чисел с плавающей точкой,из чисел представленных в стандарте ieee754:
- •Формула расчета денормализованных чисел:
- •Границы диапазонов нормализованных и денормализованных чисел:
- •Запись текстов двоичным кодом (Запись букв двоичным кодом)
- •Кодирование графической информации
Запись десятичных чисел (двоично-десятичный код)
Иногда бывает удобно хранить числа в памяти процессора в десятичном виде (Например, для вывода на экран дисплея). Для записи таких чисел используются двоично-десятичные коды. Для записи одного десятичного разряда используется четыре двоичных бита. Эти четыре бита называются тетрадой. Иногда встречается название, пришедшее из англоязычной литературы: нибл. При помощи четырех бит можно закодировать шестнадцать цифр. Лишние комбинации в двоично-десятичном коде являются запрещенными. Таблица соответствия двоично-десятичного кода и десятичных цифр приведена ниже:
Двоично-десятичный код |
Десятичный код | |||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
2 |
0 |
0 |
1 |
1 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
0 |
1 |
5 |
0 |
1 |
1 |
0 |
6 |
0 |
1 |
1 |
1 |
7 |
1 |
0 |
0 |
0 |
8 |
1 |
0 |
0 |
1 |
9 |
Остальные комбинации двоичного кода в тетраде являются запрещенными. Запишем пример двоично-десятичного кода:
1258 = 0001 0010 0101 1000
В первой тетраде записана цифра 1, во второй — 2, в третьей — 5, а в последней тетраде записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре тетрады. Количество ячеек памяти микропроцессора зависит от его разрядности. При 16-разрядном процессоре все число уместится в одну ячейку памяти.
589 = 0000 0101 1000 1001
В данном примере для записи числа достаточно трех тетрад, но ячейка памяти 16-разрядная. Поэтому старшая тетрада заполняется нулями. Они не изменяют значение цифры. Если бы мы заполнили нулями младшую тетраду, то число увеличилось бы в десять раз!
При записи десятичных чисел часто требуется записывать знак числа и десятичную запятую (в англоязычных странах точку). Двоично-десятичный код часто применяется для набора телефонного номера или набора кодов телефонных служб. В этом случае кроме десятичных цифр часто применяются символы '*' или '#'. Для записи этих символов в двоично-десятичном коде применяются запрещенные комбинации
Двоично-десятичный код |
Дополнительный символ | |||
1 |
0 |
1 |
0 |
* (звёздочка) |
1 |
0 |
1 |
1 |
# (решётка) |
1 |
1 |
0 |
0 |
+ (плюс) |
1 |
1 |
0 |
1 |
– (минус) |
1 |
1 |
1 |
0 |
, (десятичная запятая) |
1 |
1 |
1 |
1 |
Символ гашения |
Достаточно часто в памяти процессора для хранения одной десятичной цифры выделяется одна ячейка памяти (восьми, шестнадцати или тридцатидвухразрядная). Это делается для повышения скорости работы программы. Для того, чтобы отличить такой способ записи двоично-десятичного числа от стандартного, способ записи десятичного числа, как это показано в примере, называется упакованной формойдвоично-десятичного числа. Запишем те же числа, что и в предыдущем примере в неупакованном двоично-десятичном коде для восьмиразрядного процессора:
1258 =00000001
00000010
00000101
00001000
В первой строке записана цифра 1, во второй - 2, в третьей - 5, а в последней строке записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре строки (ячейки памяти)
589 = 00000000
00000101
00001000
00001001