开发手册 欢迎您!
软件开发者资料库

Pascal - 操作符

Pascal操作符 - 从基本概念到高级概念,从简单和简单的步骤学习Pascal,其中包括pascal语法,数据类型,全局和局部变量,单位,函数,循环,常量,结构,数组,枚举,集合,记录,文件,变体记录,指针,链接列表和文本处理。

运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作. Pascal允许以下类型的运算符 :

  • 算术运算符

  • 关系运算符

  • 布尔运算符

  • 位运算符

  • 设置运算符

  • 字符串运算符

让我们逐一讨论算术,关系,布尔和位运算符.稍后我们将讨论集合运算符和字符串运算.

算术运算符

下表显示了Pascal支持的所有算术运算符.假设变量 A 保持10,变量 B 保持20,然后 : 去;

运算符描述示例
+添加两个操作数A + B将给出30
-从第一个减去第二个操作数A  -  B将给-10
*将两个操作数相乘A * B将给出200
/将分子除以分母B/A将给2
模数运算符及其余的整数除法后B%A将给0

关系运算符

下表显示了Pascal支持的所有关系运算符.假设变量 A 保持10,变量 B 保持20,然后 : 

运算符描述示例
=检查如果两个操作数的值相等或不相等,如果是,则条件变为真.(A = B)不成立.
<>检查两个操作数的值是否相等或不,如果值不相等,则条件变为真.(A<> B)为真.
>检查左操作数的值是否大于右操作数的值,如果是,则条件成为是真的.(A> B)不是真的.
<检查左边是否有值操作数小于右操作数的值,如果是,则条件变为真.(A< B)为真.
> =检查价值是否为左操作数大于或等于右操作数的值,如果是,则条件变为真.(A> = B)不为真.
< =检查价值是否为左操作数小于或等于右操作数的值,如果是,则条件变为真.(A< = B)为真.

布尔运算符

下表显示了Pascal支持的所有布尔运算符语言.所有这些运算符都处理布尔操作数并生成布尔结果.假设变量 A 保持为真,变量 B 保持为假,然后是 :

运算符描述示例
被叫布尔AND运算符.如果两个操作数均为真,则条件成立.(A和B)为假.
然后它类似于AND运算符,但它保证了编译器评估的顺序逻辑表达.从左到右,仅在必要时评估右操作数.(A和B)为假.
被称为布尔运算符.如果两个操作数中的任何一个为真,则条件成立.(A或B)为真.
或者它类似于布尔OR,但它保证了编译器评估的顺序逻辑表达式.从左到右,仅在必要时评估右操作数.(A或B)为真.
被称为布尔非运算符.用于反转其操作数的逻辑状态.如果条件为真,则Logical NOT运算符将使其为假.not(A和B)为真.

位运算符

按位运算符处理位并执行逐位运算.所有这些运算符都处理整数操作数并生成整数结果.按位和(&),按位或(|)和按位不是(〜)的真值表如下 :

pqp& qp | q〜p~q
000011
010110
111100
100101

假设A = 60;和B = 13;现在采用二进制格式,它们将如下所示;

A = 0011 1100

B = 0000 1101

-----------------

A& B = 0000 1100

A ^ B = 0011 0001

~A  = 1100 0011

下表列出了Pascal支持的Bitwise运算符.假设变量A保持60,变量B保持13,则:

运算符描述示例
&Binary AND Operator将一些内容复制到结果中如果它存在于两个操作数中.(A& B)将给出12,即0000 1100
|二进制OR运算符如果在任一操作数中存在,则复制一位.(A | B)将给出61,即0011 1101
二进制OR运算符如果在任一操作数中存在,则复制一位.与|相同运营商.(A!B)将给出61,即0011 1101
二元一元补码运算符是一元的,具有'翻转'位的效果.(~A)将给出-61,由于带符号的二进制数,它是2的补码形式的1100 0011.
<<二进制左移运算符.左操作数值向左移动右操作数指定的位数.A<< 2将给出240,即1111 0000
>>二进制右移运算符.左操作数值向右移动右操作数指定的位数.A>> 2将给出15,即0000 1111

请注意,Pascal的不同实现在按位运算符方面有所不同.我们在这里使用的编译器Free Pascal支持以下按位运算符 :

运算符运算
not按位NOT
按位AND
按位OR
xor按位异或OR
shl按位向左移位
shr按位向右移位
<<按位向左移位
>>按位向右移位

运算符优先级为Pascal

运算符优先级确定表达式中的术语分组.这会影响表达式的计算方式.某些运营商的优先级高于其他运营商;例如,乘法运算符的优先级高于加法运算符.

例如x = 7 + 3 * 2;这里,x被赋值为13而不是20,因为operator *的优先级高于+,所以它首先乘以3 * 2然后加到7中.

这里,运算符最高优先级显示在表格的顶部,最低的优先级显示在底部.在表达式中,将首先评估更高优先级的运算符.

运算符优先顺序
〜,不是,最高
*,/,div,mod,和&
|,!,+, - 或,
=,<>,<,< =,> ,> =,in
或者,然后最低