运算符
编辑教程运算符
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作. 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 | 被叫布尔AND运算符.如果两个操作数均为真,则条件成立. | (A和B)为假. |
然后 | 它类似于AND运算符,但它保证了编译器评估的顺序逻辑表达.从左到右,仅在必要时评估右操作数. | (A和B)为假. |
or | 被称为布尔运算符.如果两个操作数中的任何一个为真,则条件成立. | (A或B)为真. |
或者 | 它类似于布尔OR,但它保证了编译器评估的顺序逻辑表达式.从左到右,仅在必要时评估右操作数. | (A或B)为真. |
不 | 被称为布尔非运算符.用于反转其操作数的逻辑状态.如果条件为真,则Logical NOT运算符将使其为假. | not(A和B)为真. |
位运算符
按位运算符处理位并执行逐位运算.所有这些运算符都处理整数操作数并生成整数结果.按位和(&),按位或(|)和按位不是(〜)的真值表如下 :
p | q | p& q | p 丨 q | 〜p | ~q |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 |
假设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 |
与 | 按位AND |
或 | 按位OR |
异或 | 按位异或OR |
shl | 按位向左移位 |
shr | 按位向右移位 |
<< | 按位向左移位 |
>> | 按位向右移位 |
运算符优先级
运算符优先级确定表达式中的术语分组.这会影响表达式的计算方式.某些运营商的优先级高于其他运营商;例如,乘法运算符的优先级高于加法运算符.
例如x = 7 + 3 2;这里,x被赋值为13而不是20,因为operator 的优先级高于+,所以它首先乘以3 * 2然后加到7中.
这里,运算符最高优先级显示在表格的顶部,最低的优先级显示在底部.在表达式中,将首先评估更高优先级的运算符.
运算符 | 优先顺序 |
---|---|
〜,not, | 最高 |
*,/,div,mod,和& | |
丨,!,+, - 或, | |
=,<>,<,< =,> ,> =,in | |
或者,然后 | 最低 |
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟