分类 |
运算符 |
操作 |
操作数 |
结果类型 |
范例 |
算术运算符(加法、减法和乘法运算符的结果为参加运算的两个数据中的精度高的类型) |
+ |
加 |
整数,实数 |
整数,实数 |
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
|
请发表评论