文档章节

关于运算符

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 495
阅读 10
收藏 0
运算符包括:
@  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/del/archive/2007/11/22/968642.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
JavaScript强化教程——JavaScript 运算符

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 —— JavaScript 运算符 JavaScript 算术运算符 算术运算符用于执行两个变量或值的运算。 赋值 y = 5, 以下表格将向你...

哟猫Intry
2016/07/18
21
0
JavaScript强化教程——JavaScript 运算符

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 —— JavaScript 运算符 JavaScript 算术运算符 算术运算符用于执行两个变量或值的运算。 赋值 y = 5, 以下表格将向你...

zhanyingwang
2016/09/01
25
0
Es6学习笔记(一)

1、关于let -- let变量必须先声明,后使用 -- 在同一作用域,let不能重复声明 -- let增加了块级作用域,从而从某种意义上取消了自我执行函数 2、关于const -- const只声明一个常量,一旦声明...

小旭依然
2017/05/17
0
0
四:MySQL中的运算符 - 系统的撸一遍MySQL

MySQL支持许多整理的运算符,其中主要包括以下几类:算数运算符、比较运算符、逻辑运算符、位运算符。 算数运算符 运算符 作用 + 加法 - 减法 * 乘法 / 或 DIV 除法 % 或 MOD 取余 示例: 运...

logbird
2016/08/17
35
0
重读 Swift 之二:Operator Declaration(运算符重载)

一、为什么要重载运算符 我们都知道所谓的运算符平常的也就是 之类的,比如我们随便写个 打印肯定输出的是 ,那么我们为什么还要重载运算符呢?下面我们就举个例子,如下我定义个结构体 然后...

HenryCheng
2016/09/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MyBaties分页插件PageHelper的简单使用

抛出问题: 如果想要将现有的select语句改为支持分页功能的查询语句该怎么做呢? 最简单的一种做法就是将所有的select语句都加上limit来实现分页,这种做法有什么问题呢? 有没有一种简便方法...

嘴角轻扬30
24分钟前
2
0
创业公司如何快速构建高效的监控系统?

12 月 7 日,在 2018 ArchSummit 全球架构师峰会·运维与监控专场,七牛云资深运维开发工程师贺强带来了主题为《如何快速构建高效的监控系统》的内容分享。 本文是对演讲内容的实录整理。 大...

七牛云
24分钟前
0
0
Docker与自动化测试及其测试实践

Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造。自动化的成本在于自动化程序的编写和维护,而收益在于节省了手动执行用例的时间。简而言之,如果收益大于成本...

微笑向暖wx
25分钟前
1
0
Spring Cloud 分布式链路跟踪 Sleuth + Zipkin + Elasticsearch

随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构的兴起,看似一个简单的应用,后台可能很多服务在支撑;一个请求可能需要多个服务的调用;当请求迟缓或不可用时,无法得知...

编程SHA
28分钟前
1
0
Swift-清除缓存

func removeCache (){ // 取出cache文件夹路径.如果清除其他位子的可以将cachesDirectory换成对应的文件夹 let cachePath = NSSearchPathForDirectoriesInDomains(FileMan...

west_zll
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部