Двоичные коды для ввода и вывода чисел


Существенное различие в системах счисления применяемых человеком и ЭВМ создает между ними своего рода «языковой барьер». Целесообразно преодолевать его, заставляя саму ЭВМ переводить числа из одной системы счисления в другую. Для этого нужно научиться кодировать десятичные числа с помощью двоичных кодов, поскольку только такие коды ЭВМ может и принимать и выдавать. Для ввода/вывода обычно используется двоично-десятичный код. Иначе его называют BCD или код 8-4-2-1. Перевод из десятичного кода в двоично-десятичный состоит в замене каждой цифры десятичного кода ее четырехразрядным значением в двоичной системе счисления. Например десятичному коду 75210 соответствует двоично-десятичный код

 Двоичные коды для ввода и вывода чисел

В данном случае код состоит из трех тетрад кодирующих цифры 7, 5, 2. При обратном переводе двоично-десятичный код разбивают на тетрады, считая от точки влево и вправо, и далее заменяют каждую из тетрад ее десятичным эквивалентом.

Пример:  Двоичные коды для ввода и вывода чисел

Рассмотренный двоично-десятичный код обладает новым свойством — избыточностью. У избыточного кода, общее число возможных кодовых комбинаций больше числа кодовых комбинаций имеющих смысл. Так в двоично-десятичном коде имеют смысл только тетрады от 0000 до 1001 соответствующие десятичным цифрам от 0 до 9. Тетрады 1010, 1011, 1100, 1101, 1110, 1111 в двоично-десятичном коде использоваться не могут. Избыточность кода в зависимости от конкретных условий применения может быть, как его достоинством, так и его недостатком.

С одной стороны избыточность заставляет представлять числа большим числом разрядов, чем это принципиально необходимо. Это усложняет аппаратуру. Так двоичное слово длинной в один байт может при использовании двоичного кода представлять целые числа от 0 до 25510. Представление этих же чисел двоично-десятичным кодом требует уже использования десяти двоичных разрядов.

 Двоичные коды для ввода и вывода чиселС другой стороны избыточность кода позволяет обнаруживать, а иногда даже исправлять ошибки возникающие при передачи кода. Для обнаружения или исправления ошибок передачи в коды часто специально вводят избыточность. Значительной избыточностью обладают коды типа «один из N», которые часто используются в клавиатурах. В таких кодах представляемое число жестко связано с номером разряда, в котором появляется 1 или 0. Например код «один из восьми» будет описываться таблицей

десятичное число код «один из восьми»
0 0000 0001
1 0000 0010
2 0000 0100
3 0000 1000
4 0001 0000
5 0010 0000
6 0100 0000
7 1000 0000

Для управления семисегментными цифровыми индикаторами применяются так называемые семиразрядные коды. Каждый разряд этого кода соответствует одному из сегментов синтезирующих символ и расположенных следующим образом

Как сегменты, так и разряды кода обозначают буквами A…G. Единица в соответствующем разряде семисегментного кода говорит о необходимости зажечь сегмент, 0 — погасить.

 

Соответствие индуцируемых элементов и разрядов семисегментного кода устанавливает таблица

символ G F E D C B A
0 0 1 1 1 1 1 1
1 0 0 0 0 1 1 0
2 1 0 1 1 0 1 1
3 1 0 0 1 1 1 1
4 1 1 0 0 1 1 0
5 1 1 0 1 1 0 1
6 1 1 1 1 1 0 1
7 0 0 0 0 1 1 1
8 1 1 1 1 1 1 1
9 1 1 0 1 1 1 1