Таблица 12 — Схема алфавитно-цифрового кодирования

Знаки

Десятичные значения знаков ASCII

Закодированное значение

Закодированные двоичные данные

0 — 9

48 — 57

Десятичное значение ASCII минус 43 (5 битов)

От 00101 до 01110

Знак FNCI/указатель фиксации схе­мы числового кодирования


15 (5 битов)

01111

A —Z

65 — 90

Десятичное значение ASCII минус 33 (6 битов)

От 100000 до 111001

* (ЗВЕЗДОЧКА)

42

58 (6 битов)

111010

, (ЗАПЯТАЯ)

44

59 (6 битов)

111011

- (МИНУС или дефис)

45

60 (6 битов)

111100

. (ТОЧКА в конце предложения или ТОЧКА как разделитель разрядов в десятичном числе1> )

46

61 (6 битов)

111101

/(ДРОБНАЯ ЧЕРТА)

47

62 (6 битов)

111110

Схема числового кодирования


0 (3 бита)

000

Указатель фиксации схемы кодиро­вания знаков по ISO/IEC 646


4 (5 битов)

00100

1)Знак «ТОЧКА» используют в международных стандартах как разделитель разрядов в десятичном числе (в Российской Федерации для этих целей используют знак «ЗАПЯТАЯ»),

Данные кодируют путем добавления двоичныхданных переменной длины каждого знака в поле уни­версального уплотнения данных со следующими исключениями:

  1. если следующим знаком данных является знак FNC1, его кодируют по схеме алфавитно-цифрово­го кодирования;

  2. если следующий знак данных может быть закодирован только с помощью схемы кодирования знаков по ISO/IEC 646, то в поле уплотнения данных кодируют указатель фиксации схемы кодирования знаков по ISO/IEC 646;

  3. если следующие шесть знаков данных могут быть закодированы с помощью схемы числового кодирования, то в поле уплотнения данных кодируют указатель фиксации схемы числового кодирования;

  4. если следующие четыре или более знаков данных могут быть закодированы с помощью схемы числового кодирования и они замыкают строку данных, то в поле уплотнения данных кодируют указатель фиксации схемы числового кодирования.

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

При декодировании кодированного двоичного поля сначала в поле проверяют первый (или три пер­вых) бита, следующий(ие) за ранее декодированным знаком или расположенный(ые) в начале поля:

  1. если первый бит равен «1», следующий знак должен быть декодирован как 6-битовый знак;

  2. если первые три бита равны «ООО», то это указатель фиксации;

  3. в остальных случаях следующий знак декодируют как 5-битовый знак.

7.2.5.5.3 Схема кодирования знаков по ISO/IEC 646

При этом способе кодируют цифры, прописные и строчные буквы, а также 21 специальный графичес­кий знак по ISO/IEC 646, знак FNC1 и два знака указателя фиксации, требуемые символикой. Двоичный кодированный поток не имеет фиксированного числа битов для одного знака. Биты присваивают в соответ­ствии с длиной (в битах) каждого кодируемого знака. Для кодирования каждого знака необходимо от трех до восьми битов (таблица 13).

Таблица 13 — Схема кодирования знаков по ISO/IEC 846

Знаки

Десятичные значения знаков ASCII

Кодируемое значение

Закодированные двоичные данные

0 — 9

48 — 57

Десятичное значение ASCII минус 43 (5 битов)

От 00101 до 01110

FNCI/указатель фиксации схемы числового кодирования


15 (5 битов)

01111

A-Z

65 — 90

Десятичное значение ASCII минус 1 (7 битов)

От 1000000 до 1011001

a-z

97 — 122

Десятичное значение ASCII минус 7 (7 битов)

От 1011010 до 1110011

! (ВОСКЛИЦАТЕЛЬНЫЙ ЗНАК)

33

232 (8 битов)

11101000

"(КАВЫЧКА)

34

233 (8 битов)

11101001

% (ПРОЦЕНТЫ)

37

234 (8 битов)

11101010

& (КОММЕРЧЕСКОЕ И)

38

235 (8 битов)

11101011

' (АПОСТРОФ)

39

236 (8 битов)

11101100

((СКОБКА ЛЕВАЯ)

40

237 (8 битов)

11101101

) (СКОБКА ПРАВАЯ)

41

238 (8 битов)

11101110

* (ЗВЕЗДОЧКА)

42

239 (8 битов)

11101111

+ (ПЛЮС)

43

240 (8 битов)

11110000

, (ЗАПЯТАЯ)

44

241 (8 битов)

11110001



Окончание таблицы 13

Знаки

Десятичные значения знаков ASCII

Кодируемое значение

Закодированные двоичные данные

- (МИНУС или ДЕФИС)

45

242 (8 битов)

11110010

. (ТОЧКА в конце предложения или ТОЧКА13))

46

243 (8 битов)

11110011

/(ДРОБНАЯ ЧЕРТА)

47

244 (8 битов)

11110100

: (ДВОЕТОЧИЕ)

58

245 (8 битов)

11110101

; (ТОЧКА С ЗАПЯТОЙ)

59

246 (8 битов)

11110110

< (МЕНЬШЕ)

60

247 (8 битов)

11110111

= (РАВНО)

61

248 (8 битов)

11111000

> (БОЛЬШЕ)

62

249 (8 битов)

11111001

? (ВОПРОСИТЕЛЬНЫЙ ЗНАК)

63

250 (8 битов)

11111010

_ (ПОДЧЕРКИВАНИЕ)

95

251 (8 битов)

11111011

ПРОБЕЛ

32

252 (8 битов)

11111100

Указатель фиксации схемы число­вого кодирования


0 (3 бита)

000

Указатель фиксации схемы алфа­витно-цифрового кодирования


4 (5 битов)

00100



Данные кодируют путем добавления к каждому знаку в поле универсального уплотнения данных двоичных данных переменной длины со следующими исключениями:

  1. если следующим знаком является знак FNC1, его кодируют согласно схеме кодирования знаков по ISO/IEC 646;

  2. если следующие четыре знака могут быть закодированы по схеме числового кодирования и в последующих десяти знаках отсутствует знак, который может быть закодирован только с помощью схемы кодирования знаков по ISO/IEC 646, то в поле универсального уплотнения данных кодируют указатель фиксации схемы числового кодирования;

  3. если следующие пять знаков могут быть закодированы по схеме алфавитно-цифрового кодирова­ния и в последующих десяти знаках отсутствует знак, который может быть закодирован только с помощью схемы кодирования знаков по ISO/IEC 646, то в поле универсального уплотнения данных кодируют указа­тель фиксации схемы алфавитно-цифрового кодирования.

Единственным исключением является случай, когда число завершающих знаков данных менее 10. В этом случае проверку 10 знаков досрочно завершают с окончанием данных. Если кодируют указатель фиксации, то схема кодирования соответствующим образом изменяется.

При декодировании кодированного двоичного поля сначала производят проверку первых трех или пяти битов, следующих за ранее декодированным знаком или расположенных в начале поля:

  1. если первые три бита равны «ООО», это соответствует указателю фиксации схемы числового коди­рования;

  2. в противном случае берут десятичное значение первых пяти битов. Если это значение:

  1. равно 15 или менее, то следующий знак декодируют как 5-битовый знак;

  2. находится в диапазоне от 16 до 28, то следующий знак декодируют как 7-битовый знак;

  3. равно 29 или более, то следующий знак декодируют как 8-битовый знак.

7.2.5.5.4 Биты-заполнители для поля универсального уплотнения данных

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

Строку битов-заполнителей создают путем повтора 5-битовых последовательностей “00100”, которые одновременно являются указателем фиксации схемы кодирования знаков по ISO/IEC 646 в схеме алфавит­но-цифрового кодирования и указателем фиксации схемы алфавитно-цифрового кодирования в схеме коди­рования знаков по ISO/IEC 646, так что способы кодирования и их указатели фиксации чередуются без кодирования дополнительных данных. Последняя дополнительная последовательность может быть усече­на справа, если в символе недостаточно битов.

Если схема числового кодирования завершает кодирование данных, перед чередующейся последо­вательностью битов-заполнителей “00100” требуется 4-битовый указатель фиксации алфавитно-цифрового кодирования “0000”. Например, если кодирование завершается в схеме числового кодирования и остается семь битов, они должны быть закодированы как “0000001 ”, что является указателем фиксации схемы алфа­витно-цифрового кодирования “0000”, за которым следуют первые три бита указателя фиксации “001 ” схемы кодирования знаков по ISO/IEC 646 “00100”. Первый 4-битовый указатель фиксации может быть сокращен, если для заполнения требуется менее четырех битов.

  1. Контрольный знак символа

Первым знаком символа GS1 DataBar Расширенный является контрольный знак символа. В нем зако­дирована информация о длине символа и контрольной сумме взвешенных значений ширины элементов знаков символа для данных (далее — знаки символа). Используют только первые 4009 значений (от Одо 4008) контрольного знака символа.

Число знаков символа S (в диапазоне от 4 до 22) и значение контрольной суммы кодируют в конт­рольном знаке следующим образом:

Значение контрольного знака = 211 х (S-4) + значение контрольной суммы.

Значение контрольной суммы равно остатку от деления по модулю 211 взвешенной суммы значений ширины элементов в знаке символа. Весовые коэффициенты, приведенные в таблице 14, вычисляют как степенную функцию с аргументом 3 по модулю 211, начиная с первого элемента первого знака символа.

Таблица14 — Весовые коэффициенты элементов знаков символа для вычисления значения контрольной суммы по модулю 211

Расположение знака символа по отношению к шаблону поиска

Весовой коэффициент знака символа для элемента с номером

1

2

3

4

5

6

7

8

Слева от А1*









Справа от А1

1

3

9

27

81

32

96

77

Слева от А2

20

60

180

118

143


21

63

Справа от А2

189

145

13

39

117

140

209

205

Слева от В1

193

157

49

147

19

57

171

91

Справа от В1

62

186

136

197

169

85

44

132

Слева от В2

185

133

188

142

4

12

36

108

Справа от В2

113

128

173

97

80

29

87

50

Слева от С1

150

28

84

41

123

158

52

156

Справа от С1

46

138

203

187

139

206

196

166

Слева от С2

76

17

51

153

37

111

122

155

Справа от С2

43

129

176

106

107

110

119

146

Слева от D1

16

48

144

10

30

90

59

177

Справа от D1

109

116

137

200

178

112

125

164

Слева от D2

70

210

208

202

184

130

179

115

Справа от D2

134

191

151

31

93

68

204

190