ГОСТ Р ИСО/МЭК 8825-2-2003
кодирование значения абстрактного синтаксиса, как определено в 10.1, для создания строки октетов длиной п.
10.2.2 Затем список полей для значения, в которое должен быть вставлен открытый тип, должен быть добавлен (как определено в 10.9) к неограниченной длине п (в октетах) и соответствующему выровненному по октету полю битов, содержащему результат 10.2.1.
Примечание — Когда число октетов в кодировании открытого типа большое, должны использоваться процедуры фрагментации 10.9, и кодирование открытого типа разбивается без учета положения границы фрагмента в кодировании типа, занимающего поле открытого типа.
10.3 Кодирование как неотрицательное двоичное целое
Примечание — В настоящем подразделе дано точное определение термина «неотрицательное двоичное целое кодирование», которое размещает единственное целое в поле, содержащем фиксированное число битов, фиксированное число октетов или минимальное количество октетов, необходимых для его размещения.
10.3.1 Последующие разделы ссылаются на генерацию неотрицательного двоичного целого кодирования неотрицательного целого числа в битовом поле заданной длины, единственном октете, паре октетов или минимальном для значения количестве октетов. Настоящий подраздел специфицирует кодирование, которое должно при этом использоваться.
10.3.2 Головной бит поля определяется как старший значащий бит первого октета, а завершающий бит поля — как младший значащий бит последнего октета.
10.3.3 Только для последующего определения биты должны быть перенумерованы, начиная от нуля для завершающего бита с шагом единица до головного бита поля.
10.3.4 При неотрицательном двоичном целом кодировании значение целого числа, представленного этим кодированием, должно быть суммой значений, определенных каждым битом. Бит, равный «0», имеет нулевое значение. Бит с номером п, равный «1», имеет значение 2".
10.3.5 Кодирование, сумма которого (определенная выше) равна кодируемому значению, является кодированием этого значения.
Примечание — Если размер поля кодирования фиксирован (битовое поле заданной длины, единственный октет или пара октетов), то существует единственное кодирование, сумма которого равна кодируемому значению.
10.3.6 Неотрицательное двоичное целое кодирование целого числа в минимальном количестве октетов (когда заранее не определено количество октетов, используемых для кодирования) имеет поле, кратное восьми битам, и удовлетворяет условию, что не все головные восемь битов поля равны нулю, за исключением случая, когда поле имеет длину ровно восемь битов.
Примечание — Это является необходимым и достаточным условием для создания единственного кодирования.
10.4 Кодирование как двоично-дополнительное до 2 целое
Примечание — В настоящем подразделе дано точное определение термина «двоично-дополнительное до 2 целое кодирование», которое располагает единственное целое в поле, содержащем минимальное количество октетов, необходимых для его размещения. На эти процедуры ссылаются последующие спецификации кодирования.
10.4.1 Последующие разделы ссылаются на генерацию двоично-дополнительного до 2 целого кодирования целого числа (которое может быть отрицательным, нулем или положительным) в минимальном для значения количестве октетов. Настоящий подраздел точно специфицирует кодирование, которое должно применяться при подобных ссылках.
10.4.2 Головной бит поля определяется как старший значащий бит первого октета, а завершающий бит поля — как младший значащий бит последнего октета.
10.4.3 Только для последующего определения биты должны быть перенумерованы, начиная от нуля для завершающего бита с шагом единица до головного бита поля.
10.4.4 При двоично-дополнительном до 2 целом кодировании значение целого числа, представленного этим кодированием, должно быть суммой значений, определенных каждым битом. Бит, равный «0», имеет нулевое значение. Бит с номером п, равный «1», имеет значение 2", если он не является головным; в последнем случае он имеет (отрицательное) значение —2".
10.4.5 Кодирование, сумма которого (определенная выше) равна кодируемому значению, является кодированием этого значения.
10.4.6 Двоично-дополнительное до 2 целое кодирование целого числа в минимальном коли-
11