9.18.1 Преобразователи - это объекты кодирования из класса #TRANSFORM. Они могут использоваться для преобразования абстрактных значений между разными классами кодирования и для определения простых арифметических функций, таких как умножение на фиксированное значение, вычитание фиксированного значения и т.п. При последовательном применении они дают возможность указывать общую арифметику (см. 19.4) (см. пример в D.2.4.2).
9.18.2 Преобразователь может взять одиночное значение в качестве своего источника и затем образовать одиночное значение в качестве своего результата. Ниже даются классификационные группы значений, которые могут быть источниками и результатами преобразователей:
- целое число;
- булево значение;
- цепочка знаков;
- цепочка битов;
- одиночный знак;
- одиночный бит (только источник, поддерживающий кодирование цепочки битов, см. 23.2).
9.18.3 Композиции преобразования - это упорядоченный список элементов, которые все являются одиночными значениями и имеют одну и ту же классификационную группу (из перечисленных в 9.18.2) (например, упорядоченный список одиночных знаков, или одиночных октетов, или целых чисел). Они создаются только в виде результатов преобразователей и могут использоваться только как источник последующего преобразования.
9.18.4 Если классификационной группой является цепочка битов, то размеры каждого значения цепочки битов в композиции будут одинаковыми и статически определяться преобразователем, который вырабатывает эту композицию (например, упорядоченный список одиночных битов или шестибитовых блоков).
9.18.5 Имеются преобразователи из следующих абстрактных значений в композиции:
- из цепочки знаков в композицию одиночных знаков;
- из цепочки битов в композицию цепочек битов (все значения цепочек битов в композиции имеют один и тот же размер);
- из цепочки октетов в композицию цепочек битов (все значения цепочек битов в композиции имеют размер 8 битов).
9.18.6 Имеются преобразователи из следующих композиций в абстрактные значения:
- из композиций одиночных знаков в значения цепочки знаков;
- из композиций цепочек битов в значения цепочки битов;
- из композиций цепочек битов (со значениями цепочки битов размером 8 битов) в значения цепочки октетов.
9.18.7 Все другие преобразователи могут принимать некоторое значение в качестве своего источника и вырабатывать новое значение (той же или другой классификационной группы). Они могут также использовать некоторую композицию преобразования в качестве своего источника и вырабатывать композицию в качестве своего результата, преобразуя каждый элемент композиции-источника в элемент композиции-результата.