ГОСТ Р ИСО/МЭК 16022 — 2008
5.2.5.2 Правила кодирования С40
Каждая пара кодовых слов представляет собой 16-битовое значение, в котором первое кодовое сло
во соответствует восьми старшим битам, а второе — восьми младшим битам. Три значения С40 {С1,С2,
СЗ) кодируют по формуле (1600хС1)+(40хС2)+СЗ+1.
В результате получают значения от 1до 64000. Уплотнение трех значений С40 вдва кодовых слова
представлено на рисунке 2.
Исходные знаки данных
AIM
Полученные значения С40
14. 22. 26
Вычисление 16-бигоеого значения
(1600х14)+(40х22)+26+1 =23307
Определение первого кодового слова: (16-би-
говое значение) div 256
23307 div 256 = 91
Определение второго кодового слова: (16-бито
вое значение) mod 256
23307 mod 256 =11
Итоговые кодовые слова
91. 11
Рисунок 2 — Пример кодирования по схеме кодирования С40
Для кодирования знаков, принадлежащих наборам Регистр 1 (Shift 1). Регистр 2 (Shift 2) и Регистр 3
(Shift 3). сначала следует закодировать соответствующий знак регистра, а затем — значение С40 для
данных. Кодирование по схеме С40 можетдействоватьдо окончания кодовых слов символа, кодирующих
данные.
В случае, если в символе остается только один или два знака символа до начала следования кодо
вых слов исправления ошибки, то следует придерживаться следующих правил:
a) если остаются два знака символа и кодированию подлежат три оставшихся значения С40 (которые
могут включать как знаки данных, так и знаки регистра (Shift)), то эти три значения С40 кодируют в двух
последних знаках символа. Заключительного кодового слова отказа от фиксации схемы кодирования
(Unlatch) не требуется;
b
) если остаются два знака символа и кодированию подлежат два оставшихся значения С40 (первое
из которых может быть знаком регистра (Shift) или знаком данных, а второе должно представлять знак
данных), то этидва оставшиеся значения С40 кодируют сдобавлением значения заполнителя С40,
равно го 0 (из набора Регистр 1) в двух последних знаках символа. Кодового слова отказа от фиксации
схемы кодирования (Unlatch) также не требуется;
c) если остаются два знака символа для кодирования одного оставшегося значения С40 (знака дан
ных). то в первом из двух оставшихся знаков символа (предпоследнем знаке символа) кодируют отказ от
фиксации схемы кодирования (Unlatch), а в последнем знаке символа кодируют знак данных по схеме
кодирования ASCII (КОИ-7/КОИ-8);
d) если остается один знак символа для кодирования одного оставшегося значения С40 (знака дан
ных), то в последнем знаке символа кодируют знакданных по схеме кодирования ASCII (КОИ-7/КОИ-8).
Знак отказа от фиксации схемы кодирования (Unlatch) не кодируют, его наличие подразумевается перед
последним знаком символа.
Во всех остальных случаях либо используют знак отказа от фиксации схемы кодирования (Unlatch)
для выхода из схемы кодирования С40 перед окончанием символа, либо применяют символ большего
размерадля кодирования данных.
5 2.5.3 Использование знака верхнего регистра (Upper Shift) в схеме кодирования С40
В схеме кодирования С40 знак верхнего регистра (Upper Shift) не является функциональным знаком
символики, а используется как знак регистра (Shift) внутри данного кодового набора. Для кодирования
знаков расширенного набора ASCII (КОИ-8) с десятичными значениями от 128 до 255 необходимо закоди
ровать три или четыре значения С40 в соответствии со следующими требованиями.
Если (десятичное значение знака расширенного набора ASCII (КОИ-8) минус 128] принадлежит ос
новному набору, то используют запись;
[1 (значение знака Регистр 2 (Shift))] [30 (значение знака верхнего регистра (UperShift))] [V (десятич
ное значение знака расширенного набора ASCII (КОИ-8) минус 128)].
9