Двоично-десятичное кодирование чисел
Двоично-кодированные десятичные числа могут быть представлены в ПК полями переменной длины в так называемых упакованном и распакованном форматах.
В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа:
1100 – знак «+»,
1101 – знак «-».
Структура поля упакованного формата:
|
Цифра |
Цифра |
Цифра |
Цифра |
. . . |
Цифра |
Знак |

Байт
Упакованный формат используется обычно при выполнении операций сложения и вычитания двоично-десятичных чисел.
В распакованном формате для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты каждого байта (кроме самого младшего) в ПК заполняются кодом 0011 (в соответствии с ASCII- кодом), а в младших (левых полубайтах) обычным образом кодируются десятичные цифры. Старший полубайт самого младшего (правого) байта используется для кодирования знака числа.
Распакованный формат используется обычно при выполнении операций умножения и деления двоично-десятичных чисел.
Распакованный формат представления двоично-десятичных чисел является следствием использования в ПК кода ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией). Основной стандарт для кодирования символов использует шестнадцатеричные коды 00 - 7F, расширение стандарта - 80 –FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта кодируются символы псевдографики и буквы национального алфавита.
Таким образом, можно составить обобщенную таблицу кодировки десятичных чисел в различных системах кодирования.
|
10 с/с |
2 с/с |
8 с/с |
16 с/с |
2/10 с/с |
ASCII | ||||
|
|
00000000 |
0 |
0 |
|
0000 |
|
|
0011 |
0000 |
|
|
00000001 |
|
|
|
0001 |
|
|
0011 |
0001 |
|
|
00000010 |
|
|
|
0010 |
|
|
0011 |
0010 |
|
|
00000011 |
|
|
|
0011 |
|
|
0011 |
0011 |
|
|
00000100 |
|
|
|
0100 |
|
|
0011 |
0100 |
|
|
00000101 |
|
|
|
0101 |
|
|
0011 |
0101 |
|
|
00000110 |
|
|
|
0110 |
|
|
0011 |
0110 |
|
|
00000111 |
|
|
|
0111 |
|
|
0011 |
0111 |
|
|
00001000 |
10 |
8 |
|
1000 |
|
|
0011 |
1000 |
|
|
00001001 |
11 |
9 |
|
1001 |
|
|
0011 |
1001 |
|
|
00001010 |
12 |
A |
0001 |
0000 |
0011 |
0001 |
0011 |
0000 |
|
|
00001011 |
13 |
B |
0001 |
0001 |
0011 |
0001 |
0011 |
0001 |
|
|
00001100 |
14 |
C |
0001 |
0010 |
0011 |
0001 |
0011 |
0010 |
|
|
00001101 |
15 |
D |
0001 |
0011 |
0011 |
0001 |
0011 |
0011 |
|
|
00001110 |
16 |
E |
0001 |
0100 |
0011 |
0001 |
0011 |
0100 |
|
|
00001111 |
17 |
F |
0001 |
0101 |
0011 |
0001 |
0011 |
0101 |
