Приклад розрахунку контрольного символу для кода EAN-13
- Складаємо цифри, які стоять на парних позиціях, потім на непарних позиціях:
- Тепер складаємо результат складання цифр на непарних позиціях, помножений на три і результат складання цифр на парних позиціях: .
- Контрольний символ являє собою різницю між остаточною сумою (123) і найближчим до неї найбільшим числом, кратним десяти (в даному випадку - 130): .
По поводу кодирования контрольного числа можно услышать три вопроса:
1. Почему всё так сложно, зачем умножать на 3, почему нельзя просто сложить цифры друг с другом без этого умножения?
Ответ: Потому, что коды рассчитаны не только для ввода сканером, иногда кассир может вводить его вручную. Человек ведь иногда не только ошибается, вводя другую цифру. Часто он переставляет правильные цифры местами. То есть, например, вместо 2252 может ввести 2522. Или другой вариант — он может ввести лишний ноль в одной части кода и убрать в другой. Например, вместо 00300 может ввести 00030. Простое сложение цифр не сможет отследить ошибки такого типа, а вышеуказанный метод на это способен.
2. Почему умножается на 3, а не на 2 или 5?
Ответ: Если взять таблицу умножения из школьной тетради и посмотреть на результаты умножения цифр на 3, то можно заметить, что для каждого числа последняя цифра в результате умножения разная и не повторяется. То есть, каждому исходному числу от 0 до 9 соответствует другое уникальное число от 0 до 9.
Альтернативный ответ: чтобы сохранить количество классов вычетов, число m, на которое мы умножаем, должно быть взаимно просто с n (n = 10, для дес. системы счисления). С 10 взаимно просты четыре числа: 1, 3, 7, 9.
3. Почему при вычислении контрольного числа на 4-м шаге из 10 вычитается последняя цифра суммы, ведь можно было просто записать эту цифру, полученную на шаге 3 и дело с концом, к чему такие сложности?
Ответ: Упрощение контроля. При контроле единственный правильный ответ — ноль.
Для кодування інформації у ШК EAN використовуються три набори знаків: A, B, C (табл.1 ) для кодування десяткових цифр, а також знаків СТАРТ, СТОП (Н1, Н2, Н3 ), та розділових знаків (Н4 та Н5). Кожний знак містить у собі два штрихи і два пробіли. Ширина (довжина у поперек) кожного знака для кодування цифр дорівнює 7 модулям (7-ми елементам зображення), а допоміжні знаки мають довжину 3, 5 і 6 модулів. Як знак СТАРТ використовуються набори Н1 та Н3, а знак СТОП – Н1 та Н2 у залежності від символів початку і кінця кодового слова (табл. 2, де 0 – пробіл, 1 – штрих ).
Таблиця 1
Сим- воли | Набір А | Набір В | Набір С |
Двійковий еквівалент | Двійковий еквівалент | Двійковий еквівалент | |
ліва частина кодового слова | права частина кодового слова | ||
Н1 | Обмежувальні знаки СТАРТ і СТОП | ||
Н2 | |||
Н3 | |||
Н4 | Розділові знаки | ||
Н5 |