跳转至

附录 B(规范性)Type 4 函数中的操作符

Annex B (normative) Operators in Type 4 Functions

B.1 概述

B.1 General

本附件总结了可能出现在类型 4 函数中的 PostScript 运算符,如 7.10.5“类型 4(PostScript 计算器)函数”中所述。有关这些运算符的详细信息,请参阅《PostScript 语言参考》第三版。

This annex summarizes the PostScript operators that may appear in a type 4 function, as discussed in 7.10.5, "Type 4 (PostScript Calculator) Functions". For details on these operators, see the PostScript Language Reference, Third Edition.

B.2 算术操作符

B.2 Arithmetic Operators

num1 num2 add sum 返回 num1num2
num1 num2 sub difference 返回 num1num2
num1 num2 mul product 返回 num1 乘以 num2
num1 num2 div 返回 num1 除以 num2
int1 int2 idiv 返回 int1 除以 int2 后的整数
int1 int2 mod 余数 返回 int1 除以 int2 后的余数
num1 neg num2返回num1 的负数
num1 abs num2返回 num1 的绝对值
num1 ceiling num2返回 num1 的上限
num1 floor num2返回 num1 的下限
num1 round num2num1 返回为最接近的整数
num1 truncate num2删除 num1 的小数部分
num sqrt num2返回 num 的平方根
num sqrt real 返回 num 的平方根
angle sin real 返回角度的正弦度
角度 cos real 返回角度的余弦度
num den atan angle 返回 num/den 的反正切度
base exponent exp real 将底数提升为指数幂
num ln real 返回自然对数(底数为 e)
num log real 返回常用对数(底数为10)
num cvi int 转换为整数
num cvr real 转换为实数

num1 num2 add sum Return num1 plus num2
num1 num2 sub difference Return num1 minus num2
num1 num2 mul product Return num1 times num2
num1 num2 div quotient Return num1 divided by num2
int1 int2 idiv quotient Return int1 divided by int2 as an integer
int1 int2 mod remainder Return remainder after dividing int1 by int2
num1 neg num2Return negative of num1
num1 abs num2Return absolute of num1
num1 ceiling num2Return ceiling of num1
num1 floor num2Return floor of num1
num1 round num2Return num1 to nearest integer
num1 truncate num2Remove fractional part of num1
num sqrt num2Return square root of num
num sqrt real Return square root of num
angle sin real Return sine of angle degrees
angle cos real Return cosine of angle degrees
num den atan angle Return arc tangent of num/den in degrees
base exponent exp real Raise base to exponent power
num ln real Return natural logarithm (base e)
num log real Return common logarithm (base 10)
num cvi int Convert to integer
num cvr real Convert to real

B.3 关系、布尔和位操作符

B.3 Relational, Boolean, and Bitwise Operators

any1 any2 eq bool 测试相等
any1 any2 ne bool 测试不相等
num1 num2 gt bool 测试大于
num1 num2 ge bool 测试大于或相等
num1 num2 lt bool 测试小于
num1 num2 le bool 测试小于或等于
bool1 | int1 bool2 | int2 and bool3|int3 执行逻辑 | 按位与
bool1 | int1 bool2 | int2 bool3|int3 执行逻辑 | 按位包含或
bool1 | int1 bool2 | int2 xor bool3|int3 执行逻辑 | 按位排他或
bool1 |int1 bool2|int2 执行逻辑 | 按位非
int1shift bitshift int2 执行 int1 的按位移位(正数为左移)
true true 返回布尔值 true
false false 返回布尔值 false

any1 any2 eq bool Test equal
any1 any2 ne bool Test not equal
num1 num2 gt bool Test greater than
num1 num2 ge bool Test greater than or equal
num1 num2 lt bool Test less than
num1 num2 le bool Test less than or equal
bool1 | int1 bool2 | int2 and bool3|int3 Perform logical | bitwise and
bool1 | int1 bool2 | int2 or bool3|int3 Perform logical | bitwise inclusive or
bool1 | int1 bool2 | int2 xor bool3|int3 Perform logical | bitwise exclusive or
bool1 |int1 not bool2|int2 Perform logical | bitwise not
int1shift bitshift int2 Perform bitwise shift of int1 (positive is left)
true true Return boolean value true
false false Return boolean value false

B.4 条件操作符

B.4 Conditional Operators

bool { expr } if 如果 bool 为 true,则执行 expr
bool { expr1 } { expr2 } ifelse – 如果 bool 为 true,则执行 expr1,如果为 false,则执行 expr2

bool { expr } if Execute expr if bool is true
bool { expr1 } { expr2 } ifelse – Execute expr1 if bool is true, expr2 if false

B.5 栈操作符

B.5 Stack Operators

any pop 丢弃顶部元素
any1 any2 exch any2any1 交换顶部两个元素
any dup any any 复制顶部元素
any1  anyn n copy any1anynany1anyn 复制顶部 n元素
anyn  any0 n index anynany0anyn 重复任意元素
anyn1  any0 n j roll any(j1) mod n  any0 anyn1  anyj mod n cccc

any pop Discard top element
any1 any2 exch any2any1 Exchange top two elements
any dup any any Duplicate top element
any1  anyn n copy any1anynany1anyn Duplicate top n elements
anyn  any0 n index anynany0anyn Duplicate arbitrary element
anyn1  any0 n j roll any(j1) mod n  any0 anyn1  anyj mod n cccc