博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于运算符
阅读量:6240 次
发布时间:2019-06-22

本文共 1154 字,大约阅读时间需要 3 分钟。

运算符包括: @  not  ^  *  /  div  mod  and  shl  shr  as  +  -  or  xor  =  >  <  <>  <=  >=  in  is

其中 @ not ^ 是一元运算符; + - 有时是一元,有时是二元; 其他都是二元运算符.

一元运算符在运算数的前面, ^ 例外,也可以在后面,如: P^; 二元运算符在运算数中间.

运算符的行为随运算数的类型而变,譬如: not , 面对整数是对位求反; 面对布尔是逻辑非运算.

除了 ^ is in,其它运算可应用在Variant(变体类型)上.

算术运算符: 
+ - * / div mod

布尔运算符:
not and or xor

位运算符: 
not and or xor shl shr

x shl y = x * 2^y

s shr y = x / 2^y
如果x是一个integer, 那么 x shl 40 = x shl 8, 因为integer的大小是32位.

字符串运算符: 
+

指针运算符: 
+ - ^ = <>

+ - 一般只对字符指针; 无类型指针(Pointer)在 ^ 前必须进行类型转换.

集合运算符: 
+ - * <= >= = <> in

+(并集)

-(差集)
*(交集)
<=(子集)
>=(超集)

关系运算符: 
= <> < > <= >=

两个运算数必须类型一直(整数和实数除外);

对字符和字符串,是比较每个字符在字符集中的顺序;
其中 = <> <= >= 可用于集合;
= <> 可用于指针和类与类型;
< > <= >= 可用于PChar.

类运算符: 
as in

as也用于接口;

关系运算符 = <> 也用于类型.

@运算符: 
@

@返回变量/函数/过程或方法的地址,就是指向运算数的指针;

{$T-}(编译器默认)时,@X返回通用指针; {$T+}@X返回X的类型指针;
@F(F代表一个过程或方法),返回F的入口点,@F总是Pointer;
要获取类的方法的指针,必须用类名来限定方法: @TMyCalss.Method

运算符优先级:
@ not
* / div mod and shl shr as
+ - or xor 
= <> < > <= >= in is

另外:

is比较符是用在对象之间; 其他类型之间的比较用 = .

Inc/Dec 分别类似其他语言中的++/--, 如:

Inc(i); Dec(i); Inc(i,3); Dec(i,3);

本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/10/27/1862571.html,如需转载请自行联系原作者

你可能感兴趣的文章
MapReduce-Hadoop分布式计算模型
查看>>
StrokePlus
查看>>
joisino's travel
查看>>
组合游戏-博弈论中经典模型题目
查看>>
浅谈HTTP的GET和POST
查看>>
点灯笼
查看>>
try{}catch{}
查看>>
[Aaronyang] 写给自己的WPF4.5 笔记11[自定义控件-AyImageButton的过程 1/4]
查看>>
Linux VMware新添加网络适配器找不到配置文件问题
查看>>
Javascript百学不厌 - this
查看>>
机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
查看>>
实用算法实现-第 14 篇 启发式搜索
查看>>
c#常用的排序算法
查看>>
论文阅读——Visual inertial odometry using coupled nonlinear optimization
查看>>
Office插件编程[转]
查看>>
读代码还是读文档,来自知乎
查看>>
Linux 常见编译错误
查看>>
ASP.NET MVC 3 Controller
查看>>
Vs中调试MVC源代码步骤
查看>>
JavaScript项目重构到底有多少坑要填要踩
查看>>