Арифметичні основи цифрової техніки (Глава 1 навчального посібника), страница 10

У ДДК можна утворити лише 8 парних комбінацій з 16, тому необхідно збільшити розрядність коду, щоб дістати 10 цифр. Саме таким є самодоповняльний код 3Х+2 (табл. 1.8): дві будь-які цифри Х10 в ньому відрізняються не менш, ніж двома розрядами.

Проте найпростішим кодом із виявленням одноразової помилки є ДДК із перевіркою на парність (код 8421P), який утворюється безпосередньо з ДДК (для порівняння в табл. 1.8 наведено також ДДК) за допомогою додаткового контрольного розряду парності P (Paryty – парність).

Залежно від прийнятого правила перевірки до цього розряду додається одиниця в окремих наборах, аби кількість одиниць у будь-якому з них була парною або непарною. Поодинока помилка (а також непарна їх кількість) викликає зміну парності, що й виявляє помилкову цифру. Слід зазначити, що цей метод виявлення помилок широко вживається не тільки в ДДК, але й в інших кодах. У багатьох мікропроцесорах операція перевірки на парність виконується автоматично й індикується за допомогою спеціального біта – прапорця (ознаки) парності P.

Так само помилка виявляється у зваженому (крім цифри нуль) ДДК “два з п'ятьох” (код 74210), в якому кожна десяткова цифра містить дві одиниці; незначущий розряд 0, по суті, виконує функції розряду P (див. табл. 1.8).

Зазначені коди мають мінімальну кодову відстань не менше двох, тому вони виявляють помилку, але для її виправлення потрібно ще визначити, в якому розряді вона виникає. Якщо відстань d=2, принципово це зробити неможливо, бо ті ж самі неприпустимі кодові комбінації B, C можуть виникати за одноразової помилки не тільки від коду A, але й від інших інформаційних кодів, зокрема, D, E (суцільні стрілки на рис. 1.8,б). Крім того, при цьому не виявля ються й подвійні помилки (пунктирні стрілки), бо вони викликають перетворення інформаційних кодів один в одного.

Розмірковуючи аналогічно, можна дійти висновку, що для виправлення одноразових помилок кодову відстань потрібно збільшити до d=3 (рис. 1.8,в). Тепер від інформаційних кодів A, F, G одноразові помилки (суцільні стрілки) утворюють різні неприпустимі набори D, B, C, E, тому за виникнення, наприклад, кодів B чи C ми точно впевнені, що був переданий код A і, отже, можемо відновити його.

Практично це робиться за допомогою коригувальних кодів або кодів Ге-мінґа. У коді Гемінґа, наприклад, для ДДК кожна тетрада кодується сімома бітами, 4 з яких є інформаційні, а 3 – біти контролю парності в певних розрядах коду. Ці розряди дібрано таким чином, що підсумок перевірки на парність певних бітів отриманого повідомлення утворює двійковий код помилкового розряду, інвертуванням якого хибний код виправляється.

Таким чином, шляхом уведення надлишковості коду утворюється відстань d не менше трьох, яка дозволяє виправити одноразові помилки. При цьому виявляються також дворазові помилки  (пунктир на рис. 1.8,в), проте виправити їх не можна, для цього необхідно ще збільшити відстань d збільшенням надлишковості коду.

1.3.6. Комбінаторні літеро-цифрові коди

Для обслуговування пристроїв уведення-виведення інформації, пристроїв її відображення тощо необхідно забезпечити стандартне сполучення ЕОМ із зовнішнім обладнанням, аби не розробляти його для кожної обчислювальної  системи. З цією метою впроваджено кілька кодів зображення символьної (літе-рної) інформації, наприклад, типу ASCII (American Standard Code for Information Interchange – Американський стандартний код для обміну інформацією).

У цих стандартах цифри, літери й інші службові символи кодуються, зде-більшого, однобайтовим словом, старший розряд якого може приділятися для контрольного біта парності. Наприклад, в  ASCII літера A має код 0100 0001,  знак ? – 0011 1111, символ "Повернення каретки" – 0000 1101 та ін. Кожна цифра кодується двома тетрадами, причому старша тетрада, яка називається зоною, містить однаковий набір 1111, а молодша відображає власне цифру в ДДК: від 0000 до 1001 (інші  шість наборів 1010...1111 використовуються для кодування знаків). Такий формат називається зоновим і використовується тільки для введення-виведення інформації.