Pascal 运算符
-
运算符
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。Pascal允许以下类型的运算符-- 算术运算符
- 关系运算符
- 布尔运算符
- 位运算符
- 集合运算符
- 字符串运算符
让我们一一讨论算术,关系,布尔和位运算符。稍后我们将讨论集合运算符和字符串运算。 -
算术运算符
下表显示了Pascal语言支持的所有算术运算符。假设变量A持有10,变量B持有20,则-操作符 描述 例子 + 加两个操作数 A + B等于30 - 从第一个减去第二个操作数 A - B 等于 -10 * 将两个操作数相乘 A * B等于200 / 分子除以分母。 B / A等于2 % 模运算符;给出整数除法后的余数。 B%A给出0 ++ 增量运算符。它将整数值增加一。 A++等于11 -- 递减运算符。它将整数值减一。 A--等于9 示例:: -
关系运算符
下表显示了Pascal支持的所有关系运算符。假设变量A持有10,变量B持有20,则-操作符 描述 例子 = 它检查两个操作数的值是否相等。如果是,则条件成立。 (A = B)为假。 <> 它检查两个操作数的值是否相等。如果值不相等,则条件为真。 (A <> B)为真。 > 它检查左操作数的值是否大于右操作数的值;如果是,则条件成立。 (A> B)为假。 < 它检查左操作数的值是否小于右操作数的值;如果是,则条件成立。 (A < B)为真。 >= 它检查左操作数的值是否大于或等于右操作数的值;如果是,则条件成立。 (A> = B)为假。 <= 它检查左操作数的值是否小于或等于右操作数的值;如果是,则条件成立。 (A <= B)为真。 示例:: -
布尔运算符
下表显示了Pascal语言支持的所有布尔运算符。所有这些运算符都对布尔操作数起作用并产生布尔结果。假设变量A为真,变量B为假,则-操作符 描述 例子 and 称为布尔AND运算符。 如果两个操作数都为真,则条件为真。 (A and B) 为 false. and then 它与AND运算符相似,但是,它保证了编译器计算逻辑表达式的顺序。 仅在必要时才计算从左到右和右操作数。 (A and then B) 为 false. or 称为布尔或运算符。 如果两个操作数中的任何一个为true,则条件为true。 (A or B) 为 true. or else 它与布尔OR相似,但是,它保证编译器评估逻辑表达式的顺序。 仅在必要时才计算从左到右和右操作数。 (A or else B) 为 true. not 称为布尔NOT运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则逻辑非运算符会将其设置为假。 not (A and B) 为 true. 示例:: -
按位运算符
按位运算符对位进行运算并执行逐位操作。所有这些运算符都对整数操作数起作用,并产生整数结果。按位和(&),按位或(|)和按位非(〜)的真值表如下-p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 假设A = 60; 和B =13。以二进制格式,它们将如下所示-下表列出了go语言支持的按位运算符。假设变量A为60,变量B为13,则-操作符 描述 例子 & 如果两个操作数中都存在二进制AND运算符,则会将一位复制到结果中。 (A&B)将得到12,即0000 1100 | 如果任一操作数中存在二进制或运算符,则会对其进行复制。 (A | B)将得到61,即0011 1101 ^ 如果在一个操作数中设置了该位,但不是在两个操作数中都设置了位,则二进制XOR运算符将复制该位。 (A ^ B)将得到49,即0011 0001 << 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到240,即1111 0000 >> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2将得到15,即0000 1111 示例::请注意,Pascal的不同实现在按位运算符中有所不同。Free Pascal是我们在这里使用的编译器,支持以下按位运算符-
操作符 运作方式 not 按位 非 and 按位 和 or 按位 或 xor 按位 异或 shl 按位 左移 shr 按位 右移 << 按位 左移 >> 按位 右移 -
Go中的运算符优先级
运算符优先级确定表达式中术语的分组。这会影响表达式的计算方式。某些运算符的优先级比其他运算符高;例如,乘法运算符的优先级高于加法运算符。例如x = 7 + 3 * 2; 在这里,x被赋值为13,而不是20,因为运算符*的优先级比+高,因此它首先与3 * 2相乘,然后加到7。在这里,优先级最高的运算符出现在表格的顶部,而优先级最低的运算符出现在表格的底部。在表达式中,优先级较高的运算符将首先被计算。运算符 优先级 ~, not, Highest *, /, div, mod, and, & |, !, +, -, or, =, <>, <, <=, >, >=, in or else, and then Lowest 示例::