Кодирование шрифта - часть 6
строка cvn à имя
Пример.
Синтаксис: (abc) cvn à
/abc
cvx – конвертирование в исполняемую форму. Делает литеральный объект что-либо из вершины стека операндов исполняемым. Возможность выполнить динамически создаваемую процедуру.
Синтаксис:
что-либо cvx à что-либо
Логические операторы в PostScript работают как с целыми числами, так и с логическими. В первом случае операция выполняется над операндом поразрядно. Имеется четыре основных логических операции: and, or, not и xor (из которых, как известно, можно построить все остальные булевские функции). Для краткости ниже дан пример только для xor.
xor – если оба операнда логические величины, то в стеке возвращается результат операции “исключающее ИЛИ”, если операнды – типа integer, в стек помещается результат поразрядной операции xor над их двоичным представлением.
Синтаксис:
bool1 bool2 xor à bool3
int1 int2 xor à int3
Пример.
true false xor à true
Операторы сравнения
ge – больше или равно.
Синтаксис:
число1 число2 ge à результат_сравнения
строка1 строка2 ge à
результат_сравнения
извлекает два объекта из стека операндов и помещает в него значение true, если первый операнд больше или равен второму. Строки сравниваются посимвольно.
Пример.
8.2 8.1 ge à
true
Аналогично работают и другие операторы сравнения:
gt – больше чем
eq – равно
ne – не равно
le – меньше равно
lt – меньше чем.
bitshift -- логический сдвиг числа. Сдвигает двоичное представление целого числа integer1 влево на shift разрядов, если shift положительно, или вправо, если отрицательно. Возвращает результат integer2. Биты исходящие теряются, а входящие -- обнуляются. Оба операнда должны быть целыми числами.
Синтаксис: integer1 shift bitshift à
integer2
Пример.
5 4 bitshift à
80
144 -3 bitshift à
56
Генерация случайных чисел