Delphi运算符总结

分类运算符操作操作数结果类型范例
算术运算符(加法、减法和乘法运算符的结果为参加运算的两个数据中的精度高的类型) + 整数,实数 整数,实数 X + Y
- 整数,实数 整数,实数 Result - 1
* 整数,实数 整数,实数 P * InterestRate
/ 实数除 整数,实数 实数 X / 2,不同于C中,C中5/2的结果是整数2,但是在Delphi中5/2的结果是2.5。Delphi中/运算符的结果总是实型数据
div 整数除 整数 整数 只能对两个整数进行除法运算,结果为整型数据。例如5 div 3 的值为1,而5 div 2.0是不合法的
mod 取模 整数 整数

Y mod 6,两个操作数也都必须是整数,例如5 mod 3 的值为2

+(一元) 符号等同 整数,实数 整数,实数 +7
-(一元) 符号相反 整数,实数 整数,实数 -X
布尔运算符 not 否定 布尔型 Boolean not (C in MySet)
and 布尔型 Boolean Done and (Total > 0)
or 布尔型 Boolean A or B
xor 异或 布尔型 Boolean A xor B

逻辑(按位)运算符

位运算符的操作数必须是整数

按位运算符通常用来把整数的某个位清0;按位异或运算符通常可以用来把整数的某些位取反,可以用来进行加密和解密,等等;

按位运算在计算机中比加减乘数的运算快很多,因为它比较底层

比如,写的程序的源码是很多ASCII的字符,可以通过位运算符将这些用01表示的ASCII码进行加密……就可以用来制造病毒

not 按位否定 整数 整数 not X,如果a的十进制为5,则其二进制为00000101,not a的值为11111010(补码形式),即十进制的-6
and 按位与 整数 整数 X and Y
or 按位或 整数 整数 X or Y
xor 按位异或 整数 整数 X xor Y,二进制两个相同异或为0,不同时候异或为1
shl 按位左移 整数 整数 X shl 2,对操作数的二进制数按位左移,1010左移一位结果是0100,最后的用0来填充
shr 按位右移 整数 整数 Y shr I,对操作数的二进制按位右移,1011右移一位结果是0101,最前的用0来填充
字符串运算符 + 连接 字符串、压缩串、字符 字符串 'hello'+ 'world'的结果是'helloworld'
指针运算符 + 指针加 字符指针,整数 字符指针 P + I
- 指针减 字符指针,整数 字符指针,整数 P - Q
^ 指针解除参照 指针 指针的基类型 P^
= 相等 指针 Boolean P = Q
<> 不等 指针 Boolean P <> Q
集合运算符 + 并集 集合 集合 Set1 + Set2
- 差集 集合 集合 S – T
* 交集 集合 集合 S * T
<= 子集 集合 Boolean Q <= MySet
>= 超集 集合 Boolean S1 >= S2
= 相等 集合 Boolean S2 = MySet
<> 不等 集合 Boolean MySet <> S1
in 成员 序数,集合 Boolean A in Set1
关系运算符 = 相等 简单类型、类、类引用、接口、串、压缩串 Boolean I = Max
<> 不等 简单类型、类、类引用、接口、串、压缩串 Boolean X <> Y
< 小于 简单类型、串、压缩串、PChar Boolean X < Y
> 大于 简单类型、串、压缩串、PChar Boolean Len > 0
<= 小于或等于 简单类型、串、压缩串、PChar Boolean Cnt <= 1
>= 大于或等于 简单类型、串、压缩串、PChar Boolean I >= 1
类运算符 as 转换 类和类的实例    
is 判断    
=   关系运算符 = 和 <> 也作用于类    
<>      
地址(@)运算符 @X 如果X是一个变量,那么@X返回X的地址。 当编译指示 {$T-} 有效时,@X是Pointer类型;  而在编译指示 {$T+} 状态下时,@X是 ^T 类型,这里的T是X的类型。
@F 如果 F 是一个例程(函数或过程),那么@F返回 F 的入口点,@F的类型总是Pointer。
@类中方法 当 @ 适用于定义在类中的方法时,方法标识符必需被类的名称限定。例如: @TMyClass.DoSomething

原文地址:https://www.cnblogs.com/xumenger/p/4339619.html