数值表达式
access常用的数学函数
![access常用的数学函数](https://img.taocdn.com/s3/m/13124e9b51e79b8968022663.png)
函数名称作用Abs(数值表达式)绝对值函数返回数值表达式的绝对值Int(数值表达式)取整函数返回数值表达式的整数部分Fix(数值表达式)取整函数参数为正值时,与 Int 函数相同;参数为负值时,Int函数返回小于等于参数值的第一个负数,而 Fix 函数返回大于等于参数值的第一个负数Exp(数值表达式)自然指数函数计算 e 的 n 次方,返回一个双精度数(e=2.71828)Log(数值表达式)自然对数函数计算以 e 为底的数值表达式的值的对数Sqr(数值表达式)开平方函数计算数值表达式的平方根Sin(数值表达式)正弦三角函数计算数值表达式的正弦值,数值表达式值表示以弧度为单位的角度值Cos(数值表达式)余弦三角函数计算数值表达式的余弦值,数值表达式值表示以弧度为单位的角度值Tan(数值表达式)正切三角函数计算数值表达式的正切值,数值表达式值表示以弧度为单位的角度值Rnd(数值表达式)产生随机数函数产生一个0~1之间的随机数,为单精度类型。
数值表达式参数为随机数种子,决定产生随机数的方式。
如果数值表达式值小于0,每次产生相同的随机数。
如果数值表达式大于0,每次产生新的随机数。
如果数值表达式值等于0,产生最近生成的随机数,且生成的随机数序列相同。
如果省略数值表达式参数,则默认参数值大于0举例Abs(-7)=7Int(6.28)=6Int(-6.28)=-7Fix(6.28)=6Fix(-6.28)=-6Exp(2)=7.38905609893065Log(6)=1.79175946922805Sqr(25)=5Sin(90*3.14159/180)=计算90度角的正弦值Cos(45*3.14159/180)=计算45度角的余弦值Tan(30*3.14159/180)=计算30度角的正切值Int(100*Rnd)=产生0~99的随机整数Int(101*Rnd)=产生0~100的随机整数。
5 数据类型和表达式
![5 数据类型和表达式](https://img.taocdn.com/s3/m/162007d176eeaeaad1f330e5.png)
变量名举例
strArea Print1 Client_Name 1Base_Ball Base.1 _Base1 Base Base1 BASE Print Name Text Picture
变量名可以参照以下几点: 变量名可以参照以下几点:
尽量选择有意义的名字 可以将变量名各组成部分的开头字母大写, 或加下划线。 可在变量名的前面加一前缀来提示变量的 类型。53页表3 类型。53页表3-3。 strName intAge blnSex sngHeight
算术运算的一般形式 算术运算的一般形式为: 一般形式为 a Op b 或 OP b 其中Op表示运算符, 是左操作数, 是右操作数。 其中Op表示运算符,a是左操作数,b是右操作数。 表示运算符 例如: 例如:100 * 45 a和b也可以是一个表达式。 也可以是一个表达式。 例如: 例如:23 / 5 + 1.2 由数值型数据、算术运算符和圆括号 和圆括号构成的表 由数值型数据、算术运算符和圆括号构成的表 达式称为数值表达式。 算结果为数值型数据。 达式称为数值表达式。其运算结果为数值型数据。 例如: b+sqr(b^2 *a*c))/(2 例如:(-b+sqr(b^2-4*a*c))/(2*a) 特殊情况: 特殊情况 : 单个数值型常量或变量或函数也是 数值表达式。 数值表达式。 例如: 例如:0.5,Pi,a,sin(x)
(3)全局变量
全局变量的作用范围最大,对程序的所有 窗体和模块都有效。 声明时在模块窗口的通用/声明段,用Public 声明时在模块窗口的通用/声明段,用Public 或Global关键字。 Global关键字。
三、常量
顾名思义,常量的值在程序执行过程中保 持不变,不允许用户去改变它。 常量分文字常量和符号常量两种。 常数
第二章VFP的数据表达式一、数据类型1.字符型字符型(Character,C
![第二章VFP的数据表达式一、数据类型1.字符型字符型(Character,C](https://img.taocdn.com/s3/m/fad59415a5e9856a57126018.png)
第二章 VFP的数据表达式一、数据类型1.字符型字符型(Character,C型)通常用于储存文本信息,由字母、汉字、空格、数字、符号和标点等字符组成,宽度不能超过254字节。
若超过254字节,则请改用备注型。
例如:“abc”,“计算机”,“123”,“ID18”等。
2.货币型货币型(Currency,Y型)这种类型是专为货币数据设计的数据类型,表示方法是在数字前加一个$符号。
最多只能保留到小数点后4位,超过四位则会自动四舍五入:少于四位则会自动补零。
占8个字节的空间。
例如:money=$980.45678。
3.数值型数值型(Numeric,N型)用于表示数量,由数字0~9、+或-,以及小数点组成。
数值型数据占8个字节,长度为1~20个字节。
VFP中文版采用十进制和十六进制两种格式。
例如:98.66,0xff(前面加0x表示十六进制)。
数值型数据可采用科学计数法,如“3E2”代表“3×102”,“10e-2”代表“10×10-2”。
4.整型整型(Integer,I型)用于存储不含小数部分的数值。
是一种较小的数据类型,整数型占有内存空间4个字节。
5.浮点型浮点型(Float,F型)等价于数值型类型。
VFP出于兼容性的考虑设置了这个数据类型。
6.日期型日期型(Date,D型)用于存储日期数据。
由年、月、日三部分组成,存储格式为“YYYYMMDD”。
表示范围为{^0001/01/01}到{^9999/12/31},即公元0001年1月1日到公元9999年12月31日。
其中“^”符号表示此日期格式严格遵循YMD(year,month,day)的格式,使用日期型数据时应用大括号{}括起来。
日期型数据存储长度为8个字节。
例如:mydate={^2006/10/12}表示日期是2006年10月12日,而不是2006年12月10日。
7.时间日期型时间日期型(Date Time,T型)用于记录日期时间的数据。
VFP_函数
![VFP_函数](https://img.taocdn.com/s3/m/2ef291b81a37f111f1855b9a.png)
数值函数1、INT函数(取整函数)格式:INT(数值表达式) 功能:求数值表达式值的整数部分。
例如:int(-18.567)的返回值为–18 int(-18.123) 的返回值亦为–182、MAX函数格式:MAX(表达式1,表达式2,…,表达式n)功能:求n个表达式中的最大值。
例如:a=2 b=15 c=9 时max(a,b,c) 的返回值为15a=’辽河’b=”淮河” c=[湘江] 时max(a,b,c,) 的返回值为湘江a= {^1997-07-01} b={^2001-12-20} c={^2001-07-13} 时max(a,b,c) 的返回值为07/13/01相似函数:MIN(表达式1,表达式2…表达式n),求n个表达式中的最小值。
3、MOD函数(取余函数)格式:MOD(数值表达式1,数值表达式2)功能:求数值表达式1除以数值表达式2的余数。
与运算符”%”的功能完全相同。
说明:数值表达式2不为0;大于0时函数返回正数;小于0时函数返回负数。
当两数值表达式的数值正负相异时,返回值为“余数+数值表达式2”例如:mod(18,5) 返回值 3 mod(-18,-5) 返回值-3 mod(18,-5) 返回值-2 (20-2)/(-5)==(-4)…(-2)mod(-18,5) 返回值 2 (-20+2)/5==(-4) (2)字符型函数1. & (宏替换)宏替换是FoxPro中一个非常重要的功能;从形式上看,&不象一个函数,更象一个运算符。
格式:&内存变量名[.字符表达式]功能:把字符型内存变量的当前值替换到&函数出现的位置上注意:圆点表示接在内存变量当前值的尾部如:在命令窗口依次执行下列命令:cc=’科技’ && 为字符型内存变量cc赋值’科技’bb=’&cc.大学’&& 为字符型内存变量bb赋值’科技大学’aa=’中国北京&bb’&& 为字符型内存变量aa 赋值? aa && 屏幕上显示aa的内容: 中国北京科技大学假设X=1Y=2Z=[X+Y]? &Z 输出结果为 32. LEN函数格式:LEN(字符表达式)功能:返回字符表达式中字符串的长度,若为空串,返回数值0。
vf数值计算函数
![vf数值计算函数](https://img.taocdn.com/s3/m/3ccf3c7201f69e31433294c9.png)
数值计算函数1.取绝对值函数ABS(〈数值表达式〉)2.取整函数INTO(〈数值表达式〉)3.四舍五入函数ROUND(〈数值表达式1〉,〈数值表达式2〉)4.平方根函数SQRT(〈数值表达式〉)5.求余函数MOD(〈数值表达式1〉,〈数值表达式2〉)6.指数函数EXP(〈数值表达式〉)7.自然对数函数LOG(〈数值表达式〉)8.最大值函数MAX(〈表达式1〉,〈表达式2〉[,〈表达式3〉…])最小值函数MIN(〈表达式1〉,〈表达式2〉[,〈表达式3〉…]9.∏函数PI()10.上界函数CEILING(〈数值表达式〉)11.下界函数FLOOR(〈数值表达式〉)12.正弦函数SIN(〈数值表达式〉)13.余弦函数COS(〈数值表达式〉)字符处理函数1.字符串长度函数LEN(〈字符表达式〉)2.空格函数SPACE(〈数值表达式〉)3.宏替换函数&〈字符型内存变量〉[.〈字符表达式〉]4.删除字符串空格函数(1)删除字符串前置空格和尾部空格函数ALLTRIM(〈字符表达式〉)(2)删除字符串前置空格函数LTRIM(〈字符表达式〉)(3)删除字符串尾部空格函数RTRIM|TRIM(〈字符表达式〉)5.字符串起始位置函数AT(〈字符表达式1〉, 〈字符表达式2>[,〈数值表达式〉])6.取子串函数(1)取左子串函数LEFT(〈字符表达式>,〈数值表达式〉)(2) 取右子串函数RIGHT(〈字符表达式>,〈数值表达式〉)(3)取子串函数SUBSTR(〈字符表达式>,〈数值表达式1〉[,〈数值表达式2〉]〉7.转换字符串函数(1)字符插入或替换函数STUFF(〈字符表达式1〉,<数值表达式1〉,〈数值表达式2〉〈字符表达式2>〉(2)大小写转换函数UPPER(〈字符表达式〉)LOWER(〈字符表达式〉)8.字符复制函数REPLICATE(〈字符表达式〉, 〈数值表达式〉)日期时间函数1.系统日期函数DA TE()2.系统时间函数TIME([<表达式>])3.日期函数DAY(<日期表达式>)4.星期函数DOW(<日期表达式>)CDOW(<日期表达式>)5.月份函数MONTH(<日期表达式>)CMONTH(<日期表达式>)6.年份函数YEAR(<日期表达式>)数据类型转换函数1.ASCII码转换函数(1)求ASCII字符对应数值函数ASC(〈字符表达式>〉(2)求数值对应的ASCII字符函数CHR(〈数值表达式〉)2.字符日期弄转换函数CTOD(<日期格式字符表达式>)3.日期字符型转换函数DTOC(<日期表达式>[,1])4.数值字符型转换函数STR(〈数值表达式1〉[,<长度>][,小数位>])5.字符数值型转换函数V AL(〈字符表达式>〉6.格式转换函数TRANSFORM(<表达式>,<格式描述符>)测试函数1.测试数据类型函数TYPE(〈字符表达式>〉2.条件测试函数IIF(<逻辑表达式>,<表达式1>,<表达式2>)3.测试光标所在屏幕列坐标和行坐标函数COL() ROW()4.读一键函数INKEY([数值表达式])5.与数据表有关的测试函数(1)表文件开始测试函数BOF([<工作区号或别名>])(2)表文件结束测试函数EOF([<工作区号或别名>])(3)记录号测试函数RECNO([<工作区号或别名>])(4)测试表文件是否打开函数USED([<工作区号或别名>])(5)测试查询结果函数FOUND([<工作区号或别名>])(6)测试文件存在函数FILE(<“文件名”>)(7)记录删除测试函数DELETED([<工作区号或别名>])(8)检测表文件名函数DBF([<工作区号或别名>])(9)检测表文件别名函数ALIAS([<工作区号或别名>])(10)检测工作区号函数SELECT([0/1/别名])(11)检测记录数函数RECCOUNT([<工作区号>|<别名>])(12)测试记录大小函数RECSIZE([<工作区号>|<别名>])使用数据库1.打开数据库OPEN DATABASE[数据库名|?][EXCLUAIVE2.关闭数据库CLOSE DATABASE[ALL]3.修改数据库MODIFY DA TABASE[数据库名|?][NOWAIT][NOEDIT]4.删除数据库DELETE DATABASE[数据库名|?[DELETETABLES][RECYCLE]表记录的浏览与维护1.查询记录LIST|DISPLAY[[FIELDS]〈表达式表〉][〈范围〉][FOR〈条件〉];[WHILE 〈条件〉][OFF][TO PRINT[PROMPT]|TO FILE〈文件〉]2.增加记录(1)APPEND[BLANK](2)INSERT[BLANK][BEFORE]3.删除记录(1)记录逻辑删除命令DELETE[〈范围〉][FOR〈条件〉][WHILE〈条件〉](2)记录物理删除命令PACK(3)记录恢复命令RECALL [〈范围〉][FOR〈条件〉][WHILE〈条件〉](4)记录清除命令ZAP4.修改记录REPLACE〈字段名1〉with〈表达式1〉[ADDITIVE][,〈字段名2〉WITH〈表达式2〉[ADDITIVE]…[<范围>][FOR<条件>][WHILE<条件>]5.定位记录(1)记录的绝对定位GO[TO]TOP|BOTTOMGO[TO]数值表达式(2)记录的相对定位SKIP[<数值表达式>](3)记录的条件定位LOCA TE FOR 数值表达式表的索引INDEX ON〈索引关键字〉TO〈单索文件名〉|〈索引标识名〉[OF〈复合索引文件名〉][FOR 〈条件〉][COMPACT][ASCENDING|DESCENDING][UNIQUE||CANDIDATE][ADDITIVE] 使用索引(1)打开或关闭索引文件①若索引文件已经建立,可在打开表文件的同时打开索引文件USE〈表文件名〉INDDEX〈索引文件表〉②若索引文件已经建立,且表文件已经打开,需单独打开索引文件SET INDEX TO[〈索引文件表〉][ADDITIVE](2)确定主控索引SET ORDER TO[〈数值表达式〉|〈单索引文件名〉|[TAG]〈索引标识〉[ASCENDING|DESENDING]](3)删除索引①删除非结构复合索引文件或结构索引文件中的相应索引标识符号可使用DELETE TAG〈索引标识符1〉[,〈索引标识符2〉]…②如果要删除非结构复合索引文件或结构索引文件中的所有索引标识符可使用DELETE TAG ALL(4)索引查找SEEK表达式[ORDER索引序号|[TAG]索引标识符][ASCENDING][DESCENDING]多表操作选择工作区SELECT〈工作区号〉|〈别名〉表的联接JOIN WITH〈工作区号〉|〈别名〉TO〈文件名〉[FOR〈条件〉][FIELDS〈字段名表〉]建立关联SET RELATION TO〈关键字表达式〉INTO〈别名〉|〈工作区号〉SQL的数据定义功能表的建立CREATE TABLE|DBF TableName1[NAME LongTableName][FREE](FieldName1 FieldType[ (nFieldWidth [,nPrecision]) ][NULL|NOT NULL][CHECK expression1[ERROR cMessageText1]][DEFAULT expression1][PRIMARY KEY|UNIQUE][REFERENCES TableName2[TAG Tagname1]][NOCPTRANS][,FieldName2…][,PRIMARY KEY eExpression2 TAG TagName2][,UNIQUE eExpression3 TAG TagName3][,FOREING KEY eExpression4 TAG TagName4[NODUP]REFERENCES TagName3 [TAG TagName5]][,CHECK 1Expression2[ERROR cMessageText2]])|FROM ARRAY Array Name表结构的修改(1)ALTER TABLE TableName1 ADD| ALTER[COLUMN]FiledName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOT NULL][CHECK 1Expression1[ERROR cMessageText1][DEFAULT eExpression]][PRIMARY KEY|UNIQUE][REFERENCES TableName2[TAG Tagname1]](2)ALTER TABLE TableName1 ALTER[COLUMN] TableName2[NULL|NOT NULL][SET DEFAULT eExpression2][SET CHECK 1Expression2[ERROR cMessageText2]][DROP DEFAULT][DROP CHECK](3)ALTER TABLE TableName1[DROP[COLUMN]FiledName3][SET CHECK 1Expression3[ERROR cMessageText3]][DROP CHECK][ADD PRIMARY KEY eExpression3 TAG TagName2[FOR 1Expression4]][DROP PRIMARY KEY][ADD UNIQUE eExpression4 [TAG TagName3[FOR 1Expression5]]][DROP UNIQUE [TAG TagName4][ADD FOREIGN KEY[eExpression5]TAG TagName4[FOR 1Expression6]REFERENCES TableName2[TAG TagName5]][DROP FOREIGN KEY TAG TagName6[SAVE]][RENAME COLUMN FieldName4 TO FiledName5]表的删除DROP TABLE TableNameSQLR的数据修改功能删除DELETE FROM TableName[WHERE Condition]插入①INSERT INTO TableName[ (FieldName1[,FieldName2,…])]V ALUES(eExpression1[, eExpression2,])②INSERT INTO TableName FROM ARRAY ArrayName|FROM MEMVAR更新UPDATE TableNameSET FieldName1= eExpression1[,FieldName2= eExpression2…][WHERE Conditon]SQL的数据查询SELECT[ALL|DISTINCT][TOP nExpr[PERCENT]][Alias.]Select_Item[As Column_Name][,Alias] Select_Item[As Column_Name]…] FROM[FORCE][DatabaseName!Table[[AS]Local_Alias][[INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]JOINDatabaseName! Table[[AS]Local_Alias][[ON JoinCondition…][[INTO Destination]|[TO FILE FileName[ADDITIVE]|TO PRINTER[PROMPT]|TO SCREEN]][PREFERENCE PreferenceName][NOCONSOLE][PLAIN][NOW AIT][WHERE JoinCondition[AND|OR FilterConditon…]]][GROUP BY GroupCondition[,GroupColumn…]][HA VING FilterCondition][UNION[ALL]SELECTCommand][ORDER BY Order_Item[ASC|DESC][,Order_Item[ASC|DESC]…]]。
数据库 Access中的表达式
![数据库 Access中的表达式](https://img.taocdn.com/s3/m/0132ca404693daef5ff73d4e.png)
Date() Not Between #05-3-5# And #05-12-13#
-1
“B” Between “a” And “d”
-1
’12’ Between ’10’ And ’20’
-1
‘099’ Between ’10’ And ’20’
0
比较运算符—Like
功能:判断Like左侧的表达式的值是否 符合右侧指定的模式符,如果符合,则 返回真值,否则,为假值。
使用减号(-):减号可用于一个日期减去一 个整数(也可以是数字字符串或逻辑值), 得到一个新日期;也可两个日期相减,得到 一个整数,表示两个日期之间相关的天数
日期表达式示例
表达式
值
说明
#06-3-5#+1 #06-3-5##05-10-1#
#06-3-5#-’8’
#06-35#+True
2006-3-6 日期加数值
155
两个日期相减,得到 相差的天数
2006-2-25
数值字符转换为数 值后再进行运算
2003-3-4
连接运算符
连接运算符 +
格式:字符表达式1+字符表达式2 功能:将字符表达式2的值连接在字符表达式
1的值的尾部,生成一个新的字符串. 注意:必须是两个表达式均为字符串时才能
进行连接运算
连接运算符
如2006年3月15日应该表示为#06-315#,年月日之间也可用“/”来作分隔符。 字符型:用西文单引号或西文双引号作为 定界符 逻辑型:有两个,逻辑真用True(或-1) 表示,逻辑假用False(或0)表示。
运算符—算术运算符
^
乘方
负号 -
*、/ \
Mod +、-
VFP函数和操作命令
![VFP函数和操作命令](https://img.taocdn.com/s3/m/e8a8699c6e1aff00bed5b9f3f90f76c660374c50.png)
•求整函数–int (<数值表达式>) 功能:返回整数部分–Ceiling (<数值表达式>) 功能:返回大于或等于它的最小数–floor (<数值表达式>)功能:返回小于或大于它的最大数•四舍五入函数–round (<数值表达式1>,<数值表达式2>)•求字符串函数–len (<字符表达式>) 功能:返回指定字符表达式值的长度•大小写转换函数–lower (<字符表达式>) 功能:字母转成小写,字符不变–Upper (<字符表达式>)功能:字母转成大写,字符不变•空格字符串生成函数–space(<数值表达式>)功能:返回由指定数目的空格组成的字符串。
•删除前后空格函数–rtrim (<字符表达式>)功能:去掉尾部空格后形成的字符串–Ltrim (<字符表达式>)功能:去掉前导空格后形成的字符串–alltrim (<字符表达式>)功能:去掉前导和尾部空格形成的字符串•求子串函数–left (<字符表达式>,<长度>) 功能:取左边–Right (<字符表达式>,<长度>)功能:取右边–substr (<字符表达式>,<起始位置>,<长度>) 功能:从起始开始取起,作为函数值•日期和时间函数–date () 功能:返回系统当前日期,函数值:日期型–Time () 功能:以hh:mm:ss格式返回当前时间,为字符型–Datetime () 功能:返回当前日期时间,函数值:日期型•求年份、月份、天数函数(返回值:数值型)–year (<日期表达式>|<日期时间表达式>):从指定日期当中返回年份–Month (<日期表达式>|<日期时间表达式>):从指定日期当中返回月份–Day (<日期表达式>|<日期时间表达式>):从指定日期当中返回天数•时、分、秒函数(函数值:数值型)–hour (<日期时间表达式>) 功能:返回小时部分–Minute (<日期时间表达式>)功能:返回分钟部分–Sec (<日期时间表达式>)功能:返回秒数部分•数值转换成字符串–str (<数值表达式>[,<长度>[,<小数位数>]]):将<数值表达式>的值转成字符串,转换时根据需要自动四舍五入。
数值函数
![数值函数](https://img.taocdn.com/s3/m/5f8526cabb4cf7ec4afed0c0.png)
数值函数练习题一、求绝对值函数ABS() 讲解语法:ABS(<数值表达式>)功能:返回指定数值表达式的绝对值。
函数值为数值型。
这里的<数值表达式>是参数,若给出具体数值表达式,就会得到一个函数值。
如在命令窗口中输入下面命令,就可以在Visual FoxPro屏幕工作区上看到函数运算后的结果。
?ABS(-68) &&显示函数结果为:68?ABS(80-22) &&显示函数结果为:58A=46B=8?ABS(B-A) &&函数结果为:38二、取整数部分函数INT() 讲解语法:INT(<数值表达式>)功能:计算数值表达式的值,截去数值表达式值的小数部分,并返回其整数值。
函数值为数值型。
如:?INT(18.9) &&显示函数结果为18?INT(18.4*2) &&显示函数结果为36?INT(-16.5) &&显示函数结果为-16三、四舍五入函数ROUND() 讲解语法:ROUND(<数值表达式1>,<数值表达式2>)功能:返回四舍五入到指定小数位数的数值表达式。
函数值为数值型。
四舍五入后保留的小数由<数值表达式2>决定。
如果<数值表达式2>为负数,函数值为一个被舍入的整数。
即小数点左边的数。
如:?ROUND(5432.6548,3) &&显示函数结果为5432.655?ROUND(5432.6543,-1) &&显示函数结果为5430?ROUND(5432.6543,-3) &&显示函数结果为5000四、求平方根函数SQRT() 讲解语法:SQRT(<数值表达式>)功能:求一个正数的平方根。
函数值为数值型。
如:?SQRT(9) &&显示函数结果为3?SQRT(12) &&显示函数结果为3.464101615138五、MOD()函数讲解语法:MOD(被除数,除数)功能:返回被除数与除数相除的余数。
VFP常用函数说明
![VFP常用函数说明](https://img.taocdn.com/s3/m/b0a0ccc15122aaea998fcc22bcd126fff7055d7c.png)
VFP常用函数说明1、数学函数ABS(<数值表达式>)绝对值,|x|CEILING(<数值表达式>) >=自变量的最小整数FLOOR(<数值表达式>) <=自变量的最大整数INT(<数值表达式>)取整(舍尾)自变量EXP(<数值表达式>)对基E的幂,e=2.71828LOG(<数值表达式>)自变量的自然对数,ln xLOG10(<数值表达式>)自变量的普通对数,lg xMAX(<表达式1>,<表达式2>)两个值的最大值MIN(<表达式1>,<表达式2>)两个值的最小值MOD(<数值表达式1>,<数值表达式2>)求余数RAND([<数值表达式1>])返回伪随机数ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量SIGN(<数值表达式>)自变量的符号 1,0,-1SQRT(<数值表达式>)平方根(正根)PI() 圆周率2、字符串操作函数&<内存变量> 用于代替内存变量内容LEN(<字符串表达式>)返回字符串表达式的字符个数SPACE(<数值表达式>)生成空格LOWER(<字符串表达式>)将字符串字母转换成小写字母UPPER(<字符串表达式>)将字符串字母转换成大写字母LEFT(<字符串表达式>,<数值表达式n>)取字符串左边部分字符,n为返回的字符个数SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>])求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串RIGHT(<字符串表达式>,<数值表达式n>)取字符串右边部分字符,n从右边截取字符个数TRIM(<字符串表达式>)删除字符串尾空格LTRIM(<字符串表达式>)删除字符串左部空格RTRIM(<字符串表达式>)删除字符串右部空格ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现ATC(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])同AT,但区别大小写OCCURE(<字符串表达式>,<字符串表达式>)字串出现次数STUFF(<字符串表达式1>,<起始位置>,<长度>,<字符串表达式2> 替换部分字符串LIKE(<字符串表达式1>,<字符串表达式2> 字符串比较,可含通配符?,*CHRTRAN(<字符串表达式1>,<字符串表达式2>,<字符串表达式3>)3、日期、时间函数DATE()查系统当前日期函数TIME([<数值表达式>])查系统当前时间函数DATETIME()YEAR(<日期型表达式>|<日期时间型表达式>)由日期查年函数MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数CDOW(<日期型表达式>|<日期时间型表达式>)从日期查星期名函数HOUR(<日期时间型表达式>)查小时MINUTE(<日期时间型表达式>)查分钟SEC(<日期时间型表达式>)查秒4、类型转换函数CHR(<数值表达式>)将数值表达式转换成字符VAL(<字符串表达式>)将数字字符串转换为数字STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值表达式总长,n为小数位数DTOC(<日期型表达式>|<日期时间型表达式>)日期转换为字符函数CTOD(<字符串表达式>)字符串转换为日期函数CTOT(<字符串表达式>)返回日期时间值函数TTOC(<日期时间型表达式>)返回字符值5、测试函数EMPTY(exp) 是否空值FILE(<"字符串">)测试文件是否存在DBF([<工作区号或别名>])检测表的文件名ISNULL(表达式)是否为NULLVARTYPE|TYPE(<表达式>)检测表达式值的数据类型,C—字符;N—数值;L—逻辑;D—日期;T—时间;G—通用;O—对象;Y—货币;X—NULL;U—未定义BOF([<工作区号或别名>])查表文件开始函数EOF([<工作区号或别名>])表文件结尾测试函数RECNO([<工作区号或别名>])测试当前或指定工作区表的当前记录号DELETED([<工作区号或别名>])记录删除测试RECCOUNT( ) 记录个数FOUND( )查找结果SELECT( ) 工作区DISKSPACE()返回默认磁盘驱动器中可用字节数OS()检测操作系统名称VERSION()返回VFP版本号DBC( ) 数据库名LOCK( )加锁6、其它函数ROW()判断光标行位置函数COL()判断光标列位置函数INKEY([<数值表达式>])检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间IIF(,,)SEEK( )TAG()INLIST(,,)BETWEEN(,,)FSIZE( )TABLEREVERT( ) TABLEUPDATE( )。
计算机常用函数
![计算机常用函数](https://img.taocdn.com/s3/m/e1edeb90bdeb19e8b8f67c1cfad6195f312be803.png)
2.3 常用函数函数:是用程序来实现的一种数据运算或转换。
1、系统函数的形式函数名([形参表])2、函数的返回值函数经过运算所得结果称为函数的返回值(只能有一个)。
3、常用函数的分类通常将常用的函数分为数值函数、字符处理函数、日期和时间函数、数据类型转换函数、测试函数五种。
学习函数时不仅要注意函数的名称和功能,而且还要注意函数自变量的数据类型和函数值的数据类型,这样才能正确使用每一个函数。
任何可以使用表达式的地方都可以使用函数。
1. 数值函数1)绝对值函数格式:ABS(<数值表达式>)功能:求数值表达式的绝对值示例:x=-2?abs(x),abs(10+x),abs(2+x),abs(2*x)答案:28042)符号函数格式:SI GN(<数值表达式>)功能:返回数值表达式的值的符号,当数值表达式的值为正、负、0时函数分别为1,-1,0。
示例:x=3?s ign(x), si gn(-1), si gn(x-3)答案:1 -1 03)圆周率函数格式:PI( )功能:返回圆周率。
示例:s=pi()*10*10? “s=”, s答案:s=314.164)求平方根函数格式:SQ RT(<数值表达式>)功能:返回数值表达式值的平方根,数值表达式的值不能为负。
示例:x=-4y=2.22?sqr t(abs(-4)), sqr t(10+y)答案:2.003.505)求整数函数格式:INT(<数值表达式>)功能:INT()返回数值表达式的整数部分。
示例:x=3.9?i nt(x), int(-x)答案:3-35)求整数函数格式:c eilin g(<数值表达式>)功能:c eilin g()返回大于或等于数值表达式的最小整数。
VFP常用函数大全
![VFP常用函数大全](https://img.taocdn.com/s3/m/d0688d6b26284b73f242336c1eb91a37f1113209.png)
Visual Foxpro 常用函数数值函数:1.绝对值和符号函数格式:ABS(<数值表达式>)SIGN(<数值表达式>)例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=02.求平方根表达式格式:SQRT(<数值表达式>)例如:SQRT(16)=4,它与开二分之一次方等同。
3.圆周率函数格式:PI()4.求整数函数格式:INT(<数值表达式>)返回数值表达式的整数部分CEILING(<数值表达式>)返回大于或等于表达式的最小整数FLOOR(<数值表达式>)返回小于或等于表达式的最大整数例如:INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5FLOOR(9.9)=95.四舍五入函数格式:ROUND(<数值表达式1>,<数值表达式2>)功能:返回制定表达式在制定位置四舍五入的结果例如:ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0) =345,ROUND(345.345,-1)=3506.求余函数格式:MOD(<数值表达式1>,<数值表达式2>)例如:MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1求余数的规律:1.首先按照两数的绝对值求余2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值3.余数取表达式1的正负号4.若两数异好号,余数在加上表达式2的值为最终的结果7. 求最大值和最小值函数MAX(数值表达式列表)MIN (数值表达式列表)例如:MAX(2,3,5)=5 MAX(‘2’,’12’,’05’)=2 MAX(‘汽车’,’飞机’,’轮船’)字符串比较的规律:字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。
ae数值表达式
![ae数值表达式](https://img.taocdn.com/s3/m/b4f3f98288eb172ded630b1c59eef8c75ebf954f.png)
ae数值表达式
"ae" 数值表达式在不同的上下文中可能有不同的含义。
在数学和编程领域,它通常表示一种数值计算方法。
在此背景下,我可以为您提供以下关于ae 数值表达式的解释。
在数学中,ae 数值表达式可能指的是泰勒级数展开:
f(x) ≈f(a) + f'(a)(x - a) + f''(a)(x - a)^2 / 2! + f'''(a)(x - a)^3 / 3! + ...
其中,f(x) 是要近似的函数,a 是泰勒级数展开的中心点,f'(a)、f''(a) 等表示函数f 在a 点的一阶、二阶导数。
在编程领域,ae 数值表达式可能指的是Apache Commons Math 库中的艾特肯(Aitken)收敛加速算法。
该算法用于求解数值积分问题,例如计算函数在给定区间上的定积分。
在这种情况下,ae 数值表达式表示如下:
∫f(x) dx ≈ae(f, a, b, n)
其中,f(x) 是待求解的函数,a 和 b 是积分区间的端点,n 是积分精度。
请注意,这里的解释是基于您提供的信息进行的推测。
如果您有更具体的上下文或问题,请随时告诉我,我会为您提供更详细的解答。
vf常用函数总结
![vf常用函数总结](https://img.taocdn.com/s3/m/f7b590a20029bd64783e2c6d.png)
常用函数1、数值函数Abs (数值表达式) 返回表达式的绝对值Sign(数值表达式) 返回表达式的符号:表达式为正数(1)为负数(-1)为零(0)Sqrt(数值表达式) 返回表达式的平方根。
(即开方)Pi() 返回圆周率即3.14Int(数值表达式) 返回表达式的整数部分Ceiling(数值表达式) 返回大于等于表达式的最小整数Floor(数值表达式) 返回小于等于表达式的最大整数Round(数值表达式,四舍五入的位置) 返回表达式四舍五入后的值Mod(被除数,除数) 返回两个数相除后的余数Max(数值表达式1,数值表达式2……)返回其中的最大值Min(数值表达式1,数值表达式2……)返回其中的最小值2、字符函数Len(字符表达式) 返回表达式值的长度(即表达式所包含的个数)Lower(字符表达式) 将表达式中的大写字母变为小写字母upper(字符表达式) 将表达式中的小写字母变为大写字母space(字符表达式) 返回指定的空格trim(字符表达式) 去掉表达式值的尾部空格ltrim(字符表达式) 去掉表达式值的前部空格alltrim(字符表达式) 将表达式值的前后空格都去掉left(字符表达式,长度) 从表达式的左边取指定的长度right(字符表达式,长度) 从表达式的右边取指定的长度substr(字符表达式,起始位置,长度) 从表达式的起始位置取指定的长度,若无长度则从起始位置一直取到最后occurs(字符表达式1,字符表达式2) 返回表达式1在表达式2中出现的次数at(字符表达式1,字符表达式2,表达式1在2中第几次出现) 返回表达式1的首字符在2中出现的位置。
区分大小写atc(字符表示1,字符表达式2,表达式1在2中第几次出现) 同at( ),但不区分大小写stuff(字符表达式1,起始位置,长度,字符表达式2)用表达式2的值替换表达式1中由起始位置和长度指明的内容chrtran(字符表达式1,字符表达式2,字符表达式3) 当表达式1中的一个或多个相同字符与表达式2中的某个字符一样时,就用表达式3中的对应字符替换这些字符like(字符表达式1,字符表达式2)比较2个表达式对应位置上的字符,若都匹配函数值为.T.,否则为.F.(表达式1中可以包含通配符*和?)3、日期和时间函数Date() 当前系统日期,函数值为日期型Time()当前系统时间,函数值为字符型Datetime() 当前系统日期时间,函数值为日期时间型Year(日期表达式)返回表达式中日期的年份Month(日期表达式)返回表达式中日期的月份Day(日期表达式)返回表达式中日期的天数Hour(日期时间表达式) 返回日期时间表达式中的小时部分minute(日期时间表达式) 返回日期时间表达式中的分钟部分sec(日期时间表达式) 返回日期时间表达式中的秒数部分4、数据类型转换函数Str(数值表达式,长度,小数位数) 将数值转换成字符串Val(字符表达式) 将字符串转换成数值Ctod(字符表达式) 将字符串转换成日期Ctot(字符表达式) 将字符串转换成日期时间Dtoc(字符表达式,1) 将日期转换成字符串。
vfp常用函数
![vfp常用函数](https://img.taocdn.com/s3/m/85dd30e2ba0d4a7302763a42.png)
一.数值函数:1、绝对值函数ABS(数值表达式)返回数值表达式的绝对值,返回数据类型:数值型;2、取整函数INT(数值表达式)返回数值表达式的整数部分,返回数据类型:数值型;3、符号函数SIGN(数值表达式)测试表达式的值,若为正数,返回1,若为负数,返回-1,若为0,返回0,返回数据类型:数值型;4、取最小整数函数CEILING(数值表达式)返回大于或等于表达式的值的最小整数,返回数据类型:数值型;5、取最大整数函数FLOOR(数值表达式)返回小于或等于表达式的值的最小整数,返回数据类型:数值型;6、四舍五入函数ROUND(数值表达式,有效位数)对数值表达式按照有效位数进行四舍五入,返回数据类型:数值型;7、求余函数MOD(数值表达式1,数值表达式2)返回表达式1除以表达式2的余数,同号直接求余,若异号,求余后加上表达式2的值,返回数据类型:数值型8、平方根函数SQRT(数值表达式)返回数值表达式的平方根,返回数据类型:数值型9、自然对数函数LOG(数值表达式)返回数值表达式的自然对数,返回数据类型:数值型10、圆周率函数PI( )返回圆周率的值,返回数据类型:数值型二、日期和时间函数1、日期函数DATE()返回当前系统日期,返回默认格式“mm/dd/yy”,返回的数据类型:日期型;2、求年份函数YEAR(日期表达式|日期时间表达式)返回指定日期的年份,返回的数据类型:数值;3、求月份函数MONTH(日期表达式|日期时间表达式)返回指定日期的月份,返回的数据类型:数值;4、求日函数DAY(日期表达式|日期时间表达式)返回指定日期的日的数值,返回的数据类型:数值;5、系统时间函数TIME()返回当前系统时间,返回的默认格式“hh:mm:ss”,返回数据类型:字符型;6、系统日期时间函数DATETIME()返回当前系统日期和时间,返回的数据类型日期时间型三、字符函数1、生成空格函数SPACE(数值表达式)返回一个空格组成的字符串,空格的个数有数值表达式来决定,返回数据类型:字符型2、删除前导空格函数LTRIM(字符表达式)返回指定字符串删除前导空格后的字符串,返回数据类型:字符型。
数值表达式
![数值表达式](https://img.taocdn.com/s3/m/1a80085226d3240c844769eae009581b6ad9bd7c.png)
逻辑运算符
逻辑运算符包括按位操作符和移位操作符。具体是:AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)、XOR(异或)、 SHL(左移位)和SHR(右移位)。这些逻辑运算符和常量、括号可组成数值表达式。
如:1 SHL 3,47H AND 0FH,NOT 56H等,它们的计算结果分别为:8,7和0A9H。
如:120+(321-90) mod 3,3225/32,0abcdH+5,-590等
关系运算符
关系运算符包括符号:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于等于)和GE(大于等于)。这些 关系运算符和常量、括号也可组成数值表达式。该表达式的计算结果规定如下:
若关系不成立,则该数值表达式的计算结果为0;否则,其结果为0FFFFH。 如:120H LT 100H+3,21H LE 21H等,它们的计算结果分别为:0和0FFFFH。
谢谢观看
例如:B、324Q、1234D、1234H、0abcdH、'AB'等都是常量。 在程序中,我们还可用伪指令.RADIX来改变数据的基数,在后面再详细讲解。
算术运算符
算术运算符包括符号:+(正)、-(负),运算符:+(加)、-(减)、(乘)、/(除)和MOD(取模)。这些运算符和 常量、括号可组成数值表达式。
数值表达式
数学公式
02 其它操作符
基本信息
数值表达式是指评估为数字的任意表达式。该表达式可以是变量、常量、函数和运算符的任意组合。主要包 括常量、算术运算符、关系运算符、逻辑运算符等。
相关内容
常量 算术运算符
关系运算符 逻辑运算符
常量
常量是一个立即数,直接写在汇编语言语句中,在程序的执行过程中,它不可能发生变化。通常,我们用二 进制、八进制、十进制或十六进制来书写常量。
ACCESS基本函数大全
![ACCESS基本函数大全](https://img.taocdn.com/s3/m/eae69421a300a6c30c229fc9.png)
返回一个值,该值是从字符表达式右侧第1个字符开始,截取的若干个字符。其中,字符个数是数值表达式的值。当字符表达式是Null时,返回Null值;当数值表达式值为0时,返回一个空串;当数值表达式大于或等于字符表达式的字符个数时,返回字符表达式
Mid(<字符表达式>,<数值表达式1>[,<数值表达式2>])
按照指定的小数位数进行四舍五入运算的结果。[<表达式>]是进行四舍五入运算小数点右边保留的位数
平方根
Srq(<数值表达式>)
返回数值表达式的平方根值
符号
Sgn(<数值表达式>)
返回数值表达式值的符号值。当数值表达式值大于0,返回值为1;当数值表达式值等于0,返回值为0;当数值表达式值小于0,返回值为-1
返回一个值,该值是检索子字符串在字符串中最早出现的位置。其中,数值表达式为可选项,是检索的起始位置,若省略,从第一个字符开始检索。比较方法为可选项,指定字符串比较方法。值可以为1、2或0,值为0(缺省)做二进制比较,值为1做不区分大小写的文本比较,值为2做基于数据库中包含信息的比较。若指定比较方法,则必须指定数据表达式值
最大值
Max(<字符表达式>)
返回字符表达式中值的最大值,字符表达式可以是一个字段名,也可以是一个含字段名的表达式,但所含字段应该是数字数据类型的字段
最小值
Min(<字符表达式>)
返回字符表达式中值的最小值,字符表达式可以是一个字段名,也可以是一个含字段名的表达式,但所含字段应该是数字数据类型的字段
返回由数值表达式的值确定的空格个数组成的空字符串
linux 数值表达式
![linux 数值表达式](https://img.taocdn.com/s3/m/b058b79485254b35eefdc8d376eeaeaad1f316cd.png)
linux 数值表达式
Linux 数值表达式是一种用于计算数值的表达式,可以在shell脚本或命令行中使用。
常见的数值表达式包括算术运算、比较运算和逻辑运算。
1. 算术运算:可以使用加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)等运算符进行数值计算。
例如:
- `echo $((2 + 3))` // 输出:5
- `echo $((5 * 4))` // 输出:20
- `echo $((10 / 3))` // 输出:3
2. 比较运算:可以使用比较运算符(-eq、-ne、-lt、-le、-gt、-ge)比较两个数的大小,并返回结果为真(0)或假(1)。
例如:
- `if [ $a -eq $b ]; then echo "a equals b"; fi` // 如果$a等于$b,则输出"a equals b"
3. 逻辑运算:可以使用逻辑运算符(&&、||)对数值表达式进行逻辑运算。
例如:
- `if [ $a -gt 0 ] && [ $a -lt 10 ]; then echo "a is between 0 and 10"; fi` // 如果$a大于0并且小于10,则输出"a is between 0 and 10"
还可以使用变量、函数和其他命令的输出作为数值表达式的一部分。
例如:
- `a=5`
- `b=$((a + 2))` // 将a加2并赋值给b
请注意,在数值表达式中使用变量时,需要在变量名前加上$符号。
合法的python表达式
![合法的python表达式](https://img.taocdn.com/s3/m/6d906e79ff4733687e21af45b307e87101f6f897.png)
合法的python表达式Python是一种简单易学的编程语言,其使用的语法和逻辑都很容易理解。
在Python中,表达式是其中非常重要的一部分。
表达式是由变量、运算符和常量组成的,可以表示在代码中需要执行的一些计算,比如数学运算、逻辑判断等。
在Python中,所有的表达式都必须是合法的,否则会引起语法错误。
本文将介绍各种Python中的合法表达式。
1. 数值表达式Python中的数值表达式可以涉及到整数、浮点数、复数等。
以下是一些合法的数值表达式示例:a = 10 # 整型变量b = 0.5 # 浮点型变量c = 4 + 3j # 复数变量d = a + b # a和b相加的结果,对应浮点型e = a * c # a和c相乘的结果,对应复数型f = b / a # b除以a的结果,对应浮点型2. 字符串表达式Python中的字符串表达式可以涉及到字符串操作,比如拼接、切片等。
以下是一些合法的字符串表达式示例:a = "Hello" + " " + "world" # 字符串拼接b = a[2:7] # 字符串切片,提取出"llo w"c = len(a) # 求字符串长度,对应整型3. 逻辑表达式Python中的逻辑表达式可以涉及到与、或、非等逻辑操作。
以下是一些合法的逻辑表达式示例:a = True and False # 逻辑与b = True or False # 逻辑或c = not True # 逻辑非d = a and b or c # 组合逻辑表达式4. 比较表达式Python中的比较表达式可以用于比较两个值之间的大小关系,以及是否相等等操作。
以下是一些合法的比较表达式示例:a = 3 > 5 # 大于运算,对应Falseb = 3 < 5 # 小于运算,对应Truec = 3 == 5 # 等于运算,对应Falsed = 3 != 5 # 不等于运算,对应True5. 成员表达式Python中的成员表达式可以用于判断一个值是否属于某个集合中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设变量X的偏移地址为1020H
MOV AL, X+5
MOV AL, [1025H]
这个是地址表达式
1. 地址表达式
+,-运算符对构成有效地址的各个分量进行“加”、“减”操作。 设变量X的偏移地址为1020H, 存储器操作数X+5产生EA=1025H 指令“MOV BL, X-10H”产生EA=1010H。
这些符号名使用的例子:
MESSAGE DB ERR_MSG ;等价于MESSAGE DB “Data Override ” MOV CX, NUM+1 ;等价于MOVCX, 215 MOD 15+1
有以下定义:
POINTER
WT
EQU
EQU
BUFFER[DI]
WORD PTR
这些符号名使用的例子:
DATA EQU HEIGHT + 12 ; 地址表达式赋以符号 ALPHA EQU 7 ; 常数赋以符号名 BETA EQU ALPHA-2 ; 把7-2=5赋以符号名 BETA ADDR EQU VAR + BETA ; VAR+5赋以符号名ADDR B EQU [BP + 8] ; 变址引用赋以符号名 B P8 EQU DS:[BP + 8] ; 加段前缀的变址引用赋以符号名 P8
这种表达式中的运算对象必须是“已知”的,否则无法进
行计算。 用于产生立即数操作数的表达式有4类运算符: 算术运算符、逻辑运算符、关系运算符、地址运算符。
(1) 算术运算符 算术运算符
+ (相加), -(相减), * (相乘), / (整除运算), MOD(取余数)
运算优先级从高到低依次为
(*,/)→(MOD)→(+,-) MOV BX, 32+13/6 MOD 3 32+((13/6)MOD 3) 34=22H MOV BX, 0022H
OFFSET取地址表达式的偏移地址
MOV AX, LIST MOV AX, OFFSET LIST ;取出变量LIST第一个元素送入AX ;取变量LIST的偏移地址送入AX
TYPE、LENGTH、SIZE三个运算符分别用于取变量、标号的 类型,取变量定义时的元素个数,取变量占用的字节数。
X DB “ABCDE” ;TYPE=1, LENGTH=1, SIZE=1 Y DW 3 DUP(5), 4 DUP(-1) ;TYPE=2, LENGTH=3, SIZE=6 Z DD 34, 49, 18 ;TYPE=4, LENGTH=1, SIZE=4
SEG 取地址表达式所在段的段基址
设变量LIST定义在DATA段中, 下面三条指令都是把DATA段的段基址装入AX:
MOV AX, DATA ;DATA代表该段的段基址,是一个立即数 MOV AX, SEG DATA ;取DATA的段基址,结果是立即数 MOV AX, SEG LIST ;取LIST的段基址,结果是立即数
数值表达式 在汇编指令中,无论是指令还是伪指 令,凡是以常数(立即数)或符号地址 (变量、标号等)作为操作数的地方,均 可以使用数值表达式。 数值表达式是在汇编时求值的表达式, 这包括常数表达式和地址表达式两种。在 汇编时汇编器对表达式进行计算,最终得 到一个常数或地址。
(参看汇编语言的基本语法P18)
3 符号定义伪指令 表达式赋值伪操作EQU 有时程序中多次出现同一个表达式,为 方便起见可以用赋植伪操作给表达式赋予 一个名字,其格式如下:
Expresstion_name Expresstion EQU
此后,程序中凡需要用到该表 达式之处就可以用表达式名来代替。 上式中表达式可以是任何有效的操作 数格式,可以是任何可以求出常数值 的表达式,也可以是任何有效的助记 符。
EQU是一个赋值伪操作(伪指 令),它给一个数据标号赋于一个常数 值,但这个常数不占用存储单元。当这 个数据标号出现在程序中时,汇编程序 即用它的常数值代替数据标号。EQU可以 在数据段之外使用,甚至可用在代码段 中间。
假定在数据段和代码段中要多次使用一个 数据(如25),那么在编程时凡是用到25的地 方都可用数据标号COUNT来表示。如果程序 想修改这个数据,那么只需修改EQU的赋值, 而无须修改程序中其它部分,如COUNTER和 MOV语句就不必修改。 COUNT COUNTER MOV AL, EQU 25 DB COUNT COUNT
“[ ]”称为“索引运算符”,用来括起组成有效地址的一个分量, 各分量相加,得到最后的有效地址。
MOV AX, 2[BX][DI]
MOV AX, BUFFER[BX][2]
MOV AX, [BX+DI+2]
MOV AX, [BUFFER+BX+2]
2. 立即数表达式
立即数表达式在汇编源程序时进行计算,它的结果用作指 令中的立即数操作数。
用EQU定义的符号名不允许重复定义。
注意:在EQU语句的表达式中,如果有 变量或标号的表达式,则在该语句前应该 先给出它们的定义。如上例,ALPHA必须 在BETA之前定义,否则汇编程序将指示出 错。
符号名
EQU
表达式
汇编时,对EQU定义的符号名用对应的表达式进行“替换”。 例如,有以下定义: NUM ERR_MSG EQU EQU 215 MOD 15 “Data Override ”
GT(大于)、GE(大于或等于)、LT(小于)、 LE(小于等于)、EQ(等于)、NE(不等于)
MOV AX, 6000H GE 5000H
MOV AX,0FFFFH
MOV EAX, –3 GE 2
MOV EAX,0000 0000H
(4)
地址运算符
地址运算符对变量名、标号、地址表达式进行计算,得到作 为立即数的运算结果
MOV BX, POINTER ;等价于MOV BX, BUFFER[DI]
MOV WT POINTER, 0
;等价于MOV WORD PTR BUFFER[DI], 0
使用“=”定义符号名时,只能使用常数表达式,而且对 一个符号名可以多次定义。一个新的定义出现后,原来的定义 自动终止。
TIMES = 0 …… TIMES = TIMES+1 ……
可以使用圆括号改变运算顺序
(2) 逻辑运算符
SHR(右移)、SHL(左移)、AND(逻辑与)OR(逻辑加)XOR (异或,半加)、NOT(逻辑非、取反)
运算优先级从高到低依次为
(SHL、SHR)→(NOT) → (AND) → (OR、XOR)
可以使用圆括号改变运算顺序
30 SHR 1 15
(3) 关系运算符 关系运算符用于两个数的比较,结果为“真(-1)”或“假 (0)”
近程标号的类型为-1、远程标号的类型为-2
上面所有的表达式都必须是汇编期间可以求值的。 “MOV AX, BX+2”是一条错误的指令,汇编时将报告错误,原因 在于BX的值是未知的,可变的,在汇编阶段无法进行相关的计算。
需要把BX的值与常数2相加并存入AX的操作只能在程序执行阶段由
以下两条指令完成: MOV AX, BX ADD AX, 2 ;BX寄存器值存入AX寄存器 ;AX寄存器的值加上2,结果存入AX