ISO/IEC 8825-2: 2015 (E)
Rec. ITU-T X.691 (08/2015) 3
number encoded as a 2's-complement-integer, which provides representations for whole numbers that are equal to, greater
than, or less than zero, as specified in 11.4.
NOTE 1 – The value of a two's complement binary number is derived by numbering the bits in the contents octets, starting with
bit 1 of the last octet as bit zero and ending the numbering with bit 8 of the first octet. Each bit is assigned a numerical value of 2
N
,
where N is its position in the above numbering sequence. The value of the two's complement binary number is obtained by
summing the numerical values assigned to each bit for those bits which are set to one, excluding bit 8 of the first octet, and then
reducing this value by the numerical value assigned to bit 8 of the first octet if that bit is set to one.
NOTE 2 – Whole number is a synonym for the mathematical term integer. It is used here to avoid confusion with the ASN.1 type
integer.
3.7.2 abstract syntax value: A value of an abstract syntax (defined as the set of values of a single ASN.1 type),
which is to be encoded by PER, or which is to be generated by PER decoding.
NOTE – The single ASN.1 type associated with an abstract syntax is formally identified by an object of class ABSTRACT-SYNTAX.
3.7.3 bit-field: The product of some part of the encoding mechanism that consists of an ordered set of bits that are
not necessarily a multiple of eight.
NOTE – If the use of this term is followed by "octet-aligned in the ALIGNED variant", this means that the bit-field is required to
begin on an octet boundary in the complete encoding for the aligned variant of PER.
3.7.4 canonical encoding: A complete encoding of an abstract syntax value obtained by the application of encoding
rules that have no implementation-dependent options; such rules result in the definition of a 1-1 mapping between
unambiguous and unique bitstrings in the transfer syntax and values in the abstract syntax.
3.7.5 composite type: A set, sequence, set-of, sequence-of, choice, embedded-pdv, external or unrestricted character
string type.
3.7.6 composite value: The value of a composite type.
3.7.7 constrained whole number: A whole number which is constrained by PER-visible constraints to lie within a
range from "lb" to "ub" with the value "lb" less than or equal to "ub", and the values of "lb" and "ub" as permitted values.
NOTE – Constrained whole numbers occur in the encoding which identifies the chosen alternative of a choice type, the length of
character, octet and bit string types whose length has been restricted by PER-visible constraints to a maximum length, the count of
the number of components in a sequence-of or set-of type that has been restricted by PER-visible constraints to a maximum
number of components, the value of an integer type that has been constrained by PER-visible constraints to lie within finite
minimum and maximum values, and the value that denotes an enumeration in an enumerated type.
3.7.8 effective size constraint (for a constrained string type): A single finite size constraint that could be applied
to a built-in string type and whose effect would be to permit all and only those lengths that can be present in the
constrained string type.
NOTE 1 – For example, the following has an effective size constraint:
A ::= IA5String (SIZE(1..4) | SIZE(10..15))
since it can be rewritten with a single size constraint that applies to all values:
A ::= IA5String (SIZE(1..4 | 10..15))
whereas the following has no effective size constraint since the string can be arbitrarily long if it does not contain any characters
other than 'a', 'b' and 'c':
B ::= IA5String (SIZE(1..4) | FROM("abc"))
NOTE 2 – The effective size constraint is used only to determine the encoding of lengths.
3.7.9 effective permitted-alphabet constraint (for a constrained restricted character string type): A single
permitted-alphabet constraint that could be applied to a built-in known-multiplier character string type and whose effect
would be to permit all and only those characters that can be present in at least one character position of any one of the
values in the constrained restricted character string type.
NOTE 1 – For example, in:
Ax ::= IA5String (FROM("AB") | FROM("CD"))
Bx ::= IA5String (SIZE(1..4) | FROM("abc"))
Ax has an effective permitted-alphabet constraint of "ABCD". Bx has an effective permitted-alphabet constraint that consists
of the entire IA5String alphabet since there is no smaller permitted-alphabet constraint that applies to all values of Bx.
NOTE 2 – The effective permitted-alphabet constraint is used only to determine the encoding of characters.
3.7.10 enumeration index: The non-negative whole number associated with an "EnumerationItem" in an enumerated
type. The enumeration indices are determined by sorting the "EnumerationItem"s into ascending order by their
enumeration value, then by assigning an enumeration index starting with zero for the first "EnumerationItem", one for the
second, and so on up to the last "EnumerationItem" in the sorted list.
NOTE – "EnumerationItem"s in the "RootEnumeration" are sorted separately from those in the "AdditionalEnumeration".