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否定布尔型Booleannot (C in MySet)
and布尔型BooleanDone and (Total > 0)
or布尔型BooleanA or B
xor异或布尔型BooleanA 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^
=相等指针BooleanP = Q
<>不等指针BooleanP <> Q
集合运算符+并集集合集合Set1 + Set2
-差集集合集合S – T
*交集集合集合S * T
<=子集集合BooleanQ <= MySet
>=超集集合BooleanS1 >= S2
=相等集合BooleanS2 = MySet
<>不等集合BooleanMySet <> S1
in成员序数,集合BooleanA in Set1
关系运算符=相等简单类型、类、类引用、接口、串、压缩串BooleanI = Max
<>不等简单类型、类、类引用、接口、串、压缩串BooleanX <> Y
<小于简单类型、串、压缩串、PCharBooleanX < Y
>大于简单类型、串、压缩串、PCharBooleanLen > 0
<=小于或等于简单类型、串、压缩串、PCharBooleanCnt <= 1
>=大于或等于简单类型、串、压缩串、PCharBooleanI >= 1
类运算符as转换类和类的实例
is判断
=关系运算符 = 和 <> 也作用于类
<>
地址(@)运算符@X如果X是一个变量,那么@X返回X的地址。 当编译指示 {$T-} 有效时,@X是Pointer类型; 而在编译指示 {$T+} 状态下时,@X是 ^T 类型,这里的T是X的类型。
@F如果 F 是一个例程(函数或过程),那么@F返回 F 的入口点,@F的类型总是Pointer。
@类中方法当 @ 适用于定义在类中的方法时,方法标识符必需被类的名称限定。例如: @TMyClass.DoSomething