首页 理论教育 算术和逻辑运算详解

算术和逻辑运算详解

时间:2023-06-24 理论教育 版权反馈
【摘要】:表9-6运算中的误差1.算术与逻辑运算指令的缩写在程序中,函数名的前两个字符可以用于指定该函数。表9-6运算中的误差注:相对误差取决于运算结果;采用两类误差的较小者;绝对误差是常数,而不管运算结果如何;函数TAN 执行SIN/COS。

算术和逻辑运算详解

表9-5 中列出的运算可以在变量中执行。表中“=”右边的表达式可以包含常量、函数或运算符组成的变量。表达式中的变量#j 和#k 可以用常数来替换。左侧的变量也可以用表达式赋值

表9-5 算术和逻辑运算一览表

续表

1.算术与逻辑运算指令的缩写

在程序中,函数名的前两个字符可以用于指定该函数。如ROUND →RO 与FIX →FI。

2.运算顺序

算术运算和函数运算可以结合在一起使用,运算的先后顺序是函数运算→乘/除运算→加/减运算。

3.括号的应用

括号用于改变运算次序。连同函数中使用的括号在内,括号在表达式中最多可用5 级。当超过5 级时,出现P/S 报警No.118。

4.运算误差

使用宏程序运算时,必须考虑可能出现的误差。运算中的误差见表9-6。(www.xing528.com)

表9-6 运算中的误差

注:相对误差取决于运算结果;采用两类误差的较小者;绝对误差是常数,而不管运算结果如何;函数TAN 执行SIN/COS。

【说明】

1.如果SIN、COS 或TAN 函数的运算结果小于1.0×10-8,或由于运算精度的限制不为0,设定参数No.6004#1 为1,则运算结果可以归算为0。

2.变量值的精度约为8 位十进制数。当在加/减运算中处理非常大的数时,将得不到期望的结果。例如,当试图把下面的值赋给变量#1 和#2 时:

#1=9876543210123.456  #2=9876543277777.777

变量值实际为

#1=9876543200000.000  #2=9876543300000.000

此时,当编程计算#3=#2-#1 时,其结果#3 并不是67654.321,而是#3=100000.000。

3.使用条件表达式EQ、NE、GE、GT、LE 和LT 时,可能造成误差。例如,在做条件判断IF[#1EQ#2]时,由于运算会受#1 和#2 的误差的影响,由此会造成错误的判断。因此,应该改为误差判断来限制比较稳妥,即用IF[ABS[#1-#2]LT0.001]代替。此时,当两个变量的差值未超过允许极限(此处为0.001)时,则认为两个变量的值是相等的。

4.使用下取整指令时应小心。例如,当计算#2=#1*1000,式中#1=0.002 时,变量#2 的结果值不是准确的2,可能是1.999 99997。这里,当指定#3=FIX[#2]时,变量3 的结果值不是2,而是1.0。此时,可先纠正误差,再执行下取整,如#3=FIX[#2+001]。或者用舍入操作,如#3=ROUND[#2],即可得到正确结果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈