Двоично-десятичный код (DDK)

Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную

Перевод чисел из двоичной, восьмеричной, шестнадцатеричной систем счисления в десятичную

Для такого перевода нужно знать вес каждой двоичной цифры, который определяется позицией и степенью двойки.

Для получения десятичного эквивалента необходимо сложить вес тех разрядов, в которых стоит 1.

Например:

110011002=1*27+1*26+1*23+1*22=128+64+8+4=20410

Таким же образом производится перевод восьмеричного числа в десятичную систему счисления.

Например:

23578=83*2+82*3+81*5+80*7=512*2+64*3+8*5+1*7=126310

Так же переводится и шестнадцатеричное число в десятичное.

Чтобы перевести целое число из двоичной системы счисления в восьмеричную, биты двоичного числа объединяют в группы по три, начиная с младшего бита (триады), затем каждую триаду преобразуют в восьмеричный эквивалент по таблице эквивалентов.

Например:

010 101 011 111 110 2=253768

При делении на триады двоичное число было дополнено слева незначащим нулем. Такое дополнение не изменяет значение числа.

Чтобы перевести из двоичной системы счисления в шестнадцатеричную, биты двоичного числа объединяют в группы по четыре бита (тетрады). Каждую тетраду преобразуют в шестнадцатеричный эквивалент, дополнив при необходимости слева незначащими нулями.

Например:

а). 1001 1110 2 → А 16 = 9 Е 16

б). 0011 1010 2 = 3 А 16

И наоборот, чтобы перевести восьмеричное или шестнадцатеричное число в двоичное, нужно каждую восьмеричную или шестнадцатеричную цифру заменить соответственно триадой или тетрадой из таблицы эквивалентов.

Например:

а) 65218 → А2 = 110 101 010 0012

б) 7 F 16 = 0111 11112

При двоично-десятичном кодировании десятичное число не переводится в двоичное, а каждая десятичная цифра кодируется четырехразрядным двоичным кодом. Таким образом, DDK не совпадает с двоичным кодом числа.

Итак, чтобы перевести десятичное число в DDK, необходимо каждую десятичную цифру преобразовать прямо в свой двоично-десятичный эквивалент из четырех бит.

Например:

369110 = 0011 0110 1001 0001DDK

И наоборот, таким же образом производится обратное преобразование.

Например:

1001000001110010DDK = 907210

В микропроцессоре складываются чистые двоичные числа, но результат сложения преобразуется в двоично-десятичную запись, которая затем легко представляется в десятичной форме, удобной для пользователя

О двоично-десятичном коде следует еще знать, что использовать двоичные коды с 1010 до 1111 запрещается, так как 10102 — это 1010, состоящее из двух чисел 1 и 0.

Двоично-десятичный код может быть зоновым (распакованным) или упакованным. Так как минимальной адресуемой единицей памяти компьютера является байт — 8-ми разрядное двоичное число, то каждое десятичное число можно записать в двоично-десятичном коде так, чтобы каждая цифра могла занимать один байт. Для этого необходимо добавить каждому двоично-десятичному коду цифры еще четыре разряда. Обычно добавляют 0000 — такой формат называют зоновым или распакованным. А добавляемый код из четырех разрядов (0000) называется кодом зоны. Формат двоично-десятичного кода без использования кода зоны называется упакованным.

Например:

642510 = 0110010000100101 (упакованный) = 0000011000000100 (распакованный)




Ответить

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML- теги и атрибуты:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

− 2 = 5