导航:首页 > 程序命令 > 运算命令

运算命令

发布时间:2022-05-04 09:57:54

‘壹’ 三菱plc浮点数加减乘除指令

浮点数的加减乘除指令:

浮点数四则运算指令和整点数对应指令的运算过程大同小异,不同点在于,前者是小数,后者是整数。运算过程虽然基本相同,但指令的运用还是有所区别的,接下来我们重点看一下指令运用的区别。

数的四则运算指令只能用于32位,不能用于16位。这4个指令都有2个源操作数(S1·)、(S2·)和1个目的操作数(D·),且适用软元件只有常数K、H和数据寄存器D。

它们的梯形图形式如下图所示,因为都是32位的错作数,所以在运用指令时助记符前面要加上字母“D”。

从梯形图可以看到,不管是加减还是乘除,不管是源址还是终址,它们都32位,这和我们在上篇文章所分享的整数四则运算指令有一定的差别,例如整数的32位乘法指令,目的操作数有4个,但浮点数的是2个。

表示方式和整点数完全不一样,这在上上一篇文章就已经有说明,所以在此不再赘述,大家不了解的可以回看以往的文章。另外,浮点数的四则运算指令不会影响到3个标志位M8020、M8021、M8022。

和整数运算指令一样,,PLC每扫描一个周期,这些指令就执行一次,此时,重复执行运算可能不是我们需要的,所以应该选择脉冲执行型指令或边沿触发型驱动条件。

总结:

总的来说,浮点数的四则运算指令和整点数差不多,需要用的时候直接用就是。我们接下来继续看2个与浮点数相关的其他指令。

‘贰’ 怎么用Excel来编一个运算宏命令

Function
s(d1,
d2,
R)
s
=
((d1
-
d2)
/
d2
+
2)
*
((d1
-
d2)
/
2)
/
(2
*
R)
End
Function
__________________________________
把上面的代码复制到模块里,然后在EXCEL中,输入=S(D的值,d的值,R的值)
就可得出你要的结是S的值!

‘叁’ “运算”命令的计算方法与“应用图像”命令极为相似,但是有哪些地方不同

一、应用图像命令可以使用图像的复合通道做运算,而运算命令只能使用图像的单一通道。
二、应用图像的运算结果会被加到图像的图层上,而运算命令的结果存储为一个新的通道或建立一个全新的文件。

‘肆’ 关于matlab的逻辑运算命令

&&和||被称为&和|的short circuit形式,

A&B
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。
(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。


A&&B
(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。


"|"与“||”同理,即:

AIB
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑或的计算。
(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。


AIIB
(1)首先判断A的逻辑值,如果A的值为真,就可以判断整个表达式的值为真,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。

实例:

拓展说明:

除了|和&两个操作符外,还有一种逻辑操作符:非

非(或逻辑非)是一元操作符,即~A:当A是非零时结果为“0”;当A为“0”时,结果为“1”。

‘伍’ 逻辑运算指令包括什么

逻辑运算是对无符号数进行处理的逻辑处理,主要包括逻辑与逻辑或逻辑液化和取反等运算指令。按照操作数的长度可分为自己字和双字逻辑运算。

‘陆’ 请问有谁知道excel所有计算公式的命令

1、 查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。
2、 用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。
3、从输入的18位身份证号的出生年月计算公式:=CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。
4、 从输入的身份证号码内让系统自动提取性别,可以输入以下公式:
=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式内的“C2”代表的是输入身份证号码的单元格。
1、求和: =SUM(K2:K56) ——对K2到K56这一区域进行求和;
2、平均数: =AVERAGE(K2:K56) ——对K2 K56这一区域求平均数;
3、排名: =RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名;
4、等级: =IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格")))
5、学期总评: =K2*0.3+M2*0.3+N2*0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩;
6、最高分: =MAX(K2:K56) ——求K2到K56区域(55名学生)的最高分;
7、最低分: =MIN(K2:K56) ——求K2到K56区域(55名学生)的最低分;
8、分数段人数统计:
(1) =COUNTIF(K2:K56,"100") ——求K2到K56区域100分的人数;假设把结果存放于K57单元格;
(2) =COUNTIF(K2:K56,">=95")-K57 ——求K2到K56区域95~99.5分的人数;假设把结果存放于K58单元格;
(3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56区域90~94.5分的人数;假设把结果存放于K59单元格;
(4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56区域85~89.5分的人数;假设把结果存放于K60单元格;
(5)=COUNTIF(K2:K56,">=70")-SUM(K57:K60) ——求K2到K56区域70~84.5分的人数;假设把结果存放于K61单元格;
(6)=COUNTIF(K2:K56,">=60")-SUM(K57:K61) ——求K2到K56区域60~69.5分的人数;假设把结果存放于K62单元格;
(7) =COUNTIF(K2:K56,"<60") ——求K2到K56区域60分以下的人数;假设把结果存放于K63单元格;
说明:COUNTIF函数也可计算某一区域男、女生人数。
如:=COUNTIF(C2:C351,"男") ——求C2到C351区域(共350人)男性人数;
9、优秀率: =SUM(K57:K60)/55*100
10、及格率: =SUM(K57:K62)/55*100
11、标准差: =STDEV(K2:K56) ——求K2到K56区域(55人)的成绩波动情况(数值越小,说明该班学生间的成绩差异较小,反之,说明该班存在两极分化);
12、条件求和: =SUMIF(B2:B56,"男",K2:K56) ——假设B列存放学生的性别,K列存放学生的分数,则此函数返回的结果表示求该班男生的成绩之和;
13、多条件求和: {=SUM(IF(C3:C322="男",IF(G3:G322=1,1,0)))} ——假设C列(C3:C322区域)存放学生的性别,G列(G3:G322区域)存放学生所在班级代码(1、2、3、4、5),则此函数返回的结果表示求一班的男生人数;这是一个数组函数,输完后要按Ctrl+Shift+Enter组合键(产生“{……}”)。“{}”不能手工输入,只能用组合键产生。
14、根据出生日期自动计算周岁:=TRUNC((DAYS360(D3,NOW( )))/360,0)
———假设D列存放学生的出生日期,E列输入该函数后则产生该生的周岁。
15、在Word中三个小窍门:
①连续输入三个“~”可得一条波浪线。
②连续输入三个“-”可得一条直线。
连续输入三个“=”可得一条双直线。
一、excel中当某一单元格符合特定条件,如何在另一单元格显示特定的颜色比如:
A1〉1时,C1显示红色
0<A1<1时,C1显示绿色
A1<0时,C1显示黄色
方法如下:
1、单元击C1单元格,点“格式”>“条件格式”,条件1设为:
公式 =A1=1
2、点“格式”->“字体”->“颜色”,点击红色后点“确定”。
条件2设为:
公式 =AND(A1>0,A1<1)
3、点“格式”->“字体”->“颜色”,点击绿色后点“确定”。
条件3设为:
公式 =A1<0
点“格式”->“字体”->“颜色”,点击黄色后点“确定”。
4、三个条件设定好后,点“确定”即出。
二、EXCEL中如何控制每列数据的长度并避免重复录入
1、用数据有效性定义数据长度。
用鼠标选定你要输入的数据范围,点"数据"->"有效性"->"设置","有效性条件"设成"允许""文本长度""等于""5"(具体条件可根据你的需要改变)。
还可以定义一些提示信息、出错警告信息和是否打开中文输入法等,定义好后点"确定"。
2、用条件格式避免重复。
选定A列,点"格式"->"条件格式",将条件设成“公式=COUNTIF($A:$A,$A1)>1”,点"格式"->"字体"->"颜色",选定红色后点两次"确定"。
这样设定好后你输入数据如果长度不对会有提示,如果数据重复字体将会变成红色。
三、在EXCEL中如何把B列与A列不同之处标识出来?
(一)、如果是要求A、B两列的同一行数据相比较:
假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为:
“单元格数值” “不等于”=B2
点“格式”->“字体”->“颜色”,选中红色,点两次“确定”。
用格式刷将A2单元格的条件格式向下复制。
B列可参照此方法设置。
(二)、如果是A列与B列整体比较(即相同数据不在同一行):
假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为:
“公式”=COUNTIF($B:$B,$A2)=0
点“格式”->“字体”->“颜色”,选中红色,点两次“确定”。
用格式刷将A2单元格的条件格式向下复制。
B列可参照此方法设置。
按以上方法设置后,AB列均有的数据不着色,A列有B列无或者B列有A列无的数据标记为红色字体。
四、EXCEL中怎样批量地处理按行排序
假定有大量的数据(数值),需要将每一行按从大到小排序,如何操作?
由于按行排序与按列排序都是只能有一个主关键字,主关键字相同时才能按次关键字排序。所以,这一问题不能用排序来解决。解决方法如下:
1、假定你的数据在A至E列,请在F1单元格输入公式:
=LARGE($A1:$E1,COLUMN(A1))
用填充柄将公式向右向下复制到相应范围。
你原有数据将按行从大到小排序出现在F至J列。如有需要可用“选择性粘贴/数值”复制到其他地方。
注:第1步的公式可根据你的实际情况(数据范围)作相应的修改。如果要从小到大排序,公式改为:=SMALL($A1:$E1,COLUMN(A1))
五、巧用函数组合进行多条件的计数统计
例:第一行为表头,A列是“姓名”,B列是“班级”,C列是“语文成绩”,D列是“录取结果”,现在要统计“班级”为“二”,“语文成绩”大于等于104,“录取结果”为“重本”的人数。统计结果存放在本工作表的其他列。
公式如下:
=SUM(IF((B2:B9999="二")*(C2:C9999>=104)*(D2:D9999="重本"),1,0))
输入完公式后按Ctrl+Shift+Enter键,让它自动加上数组公式符号"{}"。
六、如何判断单元格里是否包含指定文本?
假定对A1单元格进行判断有无"指定文本",以下任一公式均可:
=IF(COUNTIF(A1,"*"&"指定文本"&"*")=1,"有","无")
=IF(ISERROR(FIND("指定文本",A1,1)),"无","有")
求某一区域内不重复的数据个数
例如求A1:A100范围内不重复数据的个数,某个数重复多次出现只算一个。有两种计算方法:
一是利用数组公式:
=SUM(1/COUNTIF(A1:A100,A1:A100))
输入完公式后按Ctrl+Shift+Enter键,让它自动加上数组公式符号"{}"。
二是利用乘积求和函数:
=SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100))
七、一个工作薄中有许多工作表如何快速整理出一个目录工作表
1、用宏3.0取出各工作表的名称,方法:
Ctrl+F3出现自定义名称对话框,取名为X,在“引用位置”框中输入:
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,100)
确定
2、用HYPERLINK函数批量插入连接,方法:
在目录工作表(一般为第一个sheet)的A2单元格输入公式:
=HYPERLINK("#'"&INDEX(X,ROW())&"'!A1",INDEX(X,ROW()))
将公式向下填充,直到出错为止,目录就生成了

‘柒’ 命令运算符怎么使用

cd C:\documents and settings\administrator
cd E:\Software
cd空格加上路径就进入文件夹
cd..为返回上一级文件夹
cd E:\Software\mathtype6.7.txt

打开该路径下的文件夹
等等,还有输入相应的命令查看系统信息,导入文件等。

‘捌’ 运算指令哪里能用

可以解决PLC中出现的各种数学运算问题
加法运算,减法运算,乘法运算,除法运算

‘玖’ 编程中有那些逻辑运算指令

1.算术运算符
Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。

(1)一元运算符:
一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。
加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。
例如:
int i=6,j,k,m,n;
j = +i; //取原值,即j=6
k = -i; //取负值,即k=-6
m = i++; //先m=i,再i=i+1,即m=6,i=7
m = ++i; //先i=i+1,再m=i,即i=7,m=7
n = j--; //先n=j,再j=j-1,即n=6,j=5
n = --j; //先j=j-1,再n=j,即j=5,n=5
在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。

(2)二元运算符
二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、减、乘、除四则运算,%是求两个操作数相除后的余数。

%求余操作举例:
a % b = a - (a / b) * b
取余运算符既可用于两个操作数都是整数的情况,也可用于两个操作数都是浮点数(或一个操作数是浮点数)的情况。当两个操作数都是浮点数时,例如7.6 % 2.9时,计算结果为:7.6 - 2 * 2.9 = 1.8。
当两个操作数都是int类型数时,a%b的计算公式为:
a % b = a - (int)(a / b) * b
当两个操作数都是long类型(或其他整数类型)数时,a%b的计算公式可以类推。

当参加二元运算的两个操作数的数据类型不同时,所得结果的数据类型与精度较高(或位数更长)的那种数据类型一致。

例如:
7 / 3 //整除,运算结果为2
7.0 / 3 //除法,运算结果为2.33333,即结果与精度较高的类型一致
7 % 3 //取余,运算结果为1
7.0 % 3 //取余,运算结果为1.0
-7 % 3 //取余,运算结果为-1,即运算结果的符号与左操作数相同
7 % -3 //取余,运算结果为1,即运算结果的符号与左操作数相同

2.关系运算符
关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。

例如:
9 <= 8 //运算结果为false
9.9 >= 8.8 //运算结果为true
'A' < 'a' //运算结果为true,因字符'A'的Unicode编码值小于字符'a'的
要说明的是,对于大于等于(或小于等于)关系运算符来说,只有大于和等于两种关系运算都不成立时其结果值才为false,只要有一种(大于或等于)关系运算成立其结果值即为true。例如,对于9 <= 8,9既不小于8也不等于8,所以9 <= 8 的运算结果为false。对于9 >= 9,因9等于9,所以9 >= 9的运算结果为true。

3.逻辑运算符
逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
真值表是表示逻辑运算功能的一种直观方法,其具体方法是把逻辑运算的所有可能值用表格形式全部罗列出来。Java语言逻辑运算符的真值表如下:
逻辑运算符的真值表
A B A&&B A||B !A A^B A&B A|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true

前两列是参与逻辑运算的两个逻辑变量,共有4种可能,所以表2.5共有4行。后6列分别是6个逻辑运算符在逻辑变量A和逻辑变量B取不同数值时的运算结果值。
要说明的是,两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。其区别是:&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。

例如,有如下逻辑表达式:
(i>=1) && (i<=100)
此时,若i等于0,则系统判断出i>=1的计算结果为false后,系统马上得出该逻辑表达式的最终计算结果为false,因此,系统不继续判断i<=100的值。短路计算功能可以提高程序的运行速度。
作者建议读者:在程序设计时使用&&和||运算符,不使用&和|运算符。

用逻辑与(&&)、逻辑或(||)和逻辑非(!)可以组合出各种可能的逻辑表达式。逻辑表达式主要用在 if、while等语句的条件组合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++; //循环过程
上述程序段的循环过程将i++语句循环执行100次。

4.位运算符
位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。
位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。

位运算示例
运算符 名称 示例 说明
& 位与 x&y 把x和y按位求与
| 位或 x|y 把x和y按位求或
~ 位非 ~x 把x按位求非
^ 位异或 x^y 把x和y按位求异或
>> 右移 x>>y 把x的各位右移y位
<< 左移 x<<y 把x的各位左移y位
>>> 右移 x>>>y 把x的各位右移y位,左边填0

举例说明:
(1)有如下程序段:
int x = 64; //x等于二进制数的01000000
int y = 70; //y等于二进制数的01000110
int z = x&y //z等于二进制数的01000000
即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。
(2)右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段:
int x = 70; //x等于二进制数的01000110
int y = 2;
int z = x>>y //z等于二进制数的00010001
即运算结果为z等于二进制数00010001,即z等于十进制数17。
对于如下程序段:
int x = -70; //x等于二进制数的11000110
int y = 2;
int z = x>>y //z等于二进制数的11101110
即运算结果为z等于二进制数11101110,即z等于十进制数-18。要透彻理解右移和左移操作,读者需要掌握整数机器数的补码表示法。
(3)0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。

5.其他运算符

(1)赋值运算符与其他运算符的简捷使用方式
赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。
赋值运算符与其他运算符的简捷使用方式
运算符 用法 等价于 说明
+= s+=i s=s+i s,i是数值型
-= s-=i s=s-i s,i是数值型
*= s*=i s=s*i s,i是数值型
/= s/=i s=s/i s,i是数值型
%= s%=i s=s%i s,i是数值型
&= a&=b a=a&b a,b是逻辑型或整型
|= a|=b a=a|b a,b是逻辑型或整型
^= A^=b a=a^b a,b是逻辑型或整型
<<= s<<=i s=s<<i s,i是整型
>>= s>>=i s=s>>i s,i是整型
>>>= s>>>=i s=s>>>i s,i是整型

(2)方括号[]和圆括号()运算符
方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。
圆括号()运算符用于改变表达式中运算符的优先级。

(3)字符串加(+)运算符
当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。如对于如下程序段:
int max = 100;
System.out.println("max = "+max);
计算机屏幕的输出结果为:max = 100,即此时是把变量max中的整数值100转换成字符串100输出的。

(4)条件运算符(?:)
条件运算符(?:)的语法形式为:
<表达式1> ?<表达式2> : <表达式3>
条件运算符的运算方法是:先计算<表达式1>的值,当<表达式1>的值为true时,则将<表达式2>的值作为整个表达式的值;当<表达式1>的值为false时,则将<表达式3>的值作为整个表达式的值。如:
int a=1,b=2,max;
max = a>b?a:b; //max等于2

(5)强制类型转换符
强制类型转换符能将一个表达式的类型强制转换为某一指定数据类型,其语法形式为:
(<类型>)<表达式>

(6)对象运算符instanceof
对象运算符instanceof用来测试一个指定对象是否是指定类(或它的子类)的实例,若是则返回true,否则返回false。

(7)点运算符
点运算符“.”的功能有两个:一是引用类中成员,二是指示包的层次等级。

6.运算符的优先级
以下按优先级从高到低的次序列出Java语言中的所有运算符,表中结合性一列中的“左?右”表示其运算次序为从左向右,“右?左”表示其运算次序为从右向左。

优先级 运算符 结合性
1 . [] () ; ,
2 ++ ―― += ! ~ +(一元) -(一元) 右?左
3 * / % 左?右
4 +(二元) -(二元) 左?右
5 << >> >>> 左?右
6 < > <= >= instanceof 左?右
7 = = != 左?右
8 & 左?右
9 ^ 左?右
10 | 左?右
11 && 左?右
12 || 左?右
13 ?: 右?左
14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右?左

‘拾’ 运算指令包括哪些

1.算术运算符 Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。 (1)一元运算符: 一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。 加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。 例如: int i=6,j,k,m,n; j = +i; //取原值,即j=6 k = -i; //取负值,即k=-6 m = i++; //先m=i,再i=i+1,即m=6,i=7 m = ++i; //先i=i+1,再m=i,即i=7,m=7 n = j--; //先n=j,再j=j-1,即n=6,j=5 n = --j; //先j=j-1,再n=j,即j=5,n=5 在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。 (2)二元运算符 二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、减、乘、除四则运算,%是求两个操作数相除后的余数。 %求余操作举例: a % b = a - (a / b) * b 取余运算符既可用于两个操作数都是整数的情况,也可用于两个操作数都是浮点数(或一个操作数是浮点数)的情况。当两个操作数都是浮点数时,例如7.6 % 2.9时,计算结果为:7.6 - 2 * 2.9 = 1.8。 当两个操作数都是int类型数时,a%b的计算公式为: a % b = a - (int)(a / b) * b 当两个操作数都是long类型(或其他整数类型)数时,a%b的计算公式可以类推。 当参加二元运算的两个操作数的数据类型不同时,所得结果的数据类型与精度较高(或位数更长)的那种数据类型一致。 例如: 7 / 3 //整除,运算结果为2 7.0 / 3 //除法,运算结果为2.33333,即结果与精度较高的类型一致 7 % 3 //取余,运算结果为1 7.0 % 3 //取余,运算结果为1.0 -7 % 3 //取余,运算结果为-1,即运算结果的符号与左操作数相同 7 % -3 //取余,运算结果为1,即运算结果的符号与左操作数相同 2.关系运算符 关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。 例如: 9 <= 8 //运算结果为false 9.9 >= 8.8 //运算结果为true 'A' < 'a' //运算结果为true,因字符'A'的Unicode编码值小于字符'a'的 要说明的是,对于大于等于(或小于等于)关系运算符来说,只有大于和等于两种关系运算都不成立时其结果值才为false,只要有一种(大于或等于)关系运算成立其结果值即为true。例如,对于9 <= 8,9既不小于8也不等于8,所以9 <= 8 的运算结果为false。对于9 >= 9,因9等于9,所以9 >= 9的运算结果为true。 3.逻辑运算符 逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。 真值表是表示逻辑运算功能的一种直观方法,其具体方法是把逻辑运算的所有可能值用表格形式全部罗列出来。Java语言逻辑运算符的真值表如下: 逻辑运算符的真值表 A B A&&B A||B !A A^B A&B A|B false false false false true false false false true false false true false true false true false true false true true true false true true true true true false false true true 前两列是参与逻辑运算的两个逻辑变量,共有4种可能,所以表2.5共有4行。后6列分别是6个逻辑运算符在逻辑变量A和逻辑变量B取不同数值时的运算结果值。 要说明的是,两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。其区别是:&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。 例如,有如下逻辑表达式: (i>=1) && (i<=100) 此时,若i等于0,则系统判断出i>=1的计算结果为false后,系统马上得出该逻辑表达式的最终计算结果为false,因此,系统不继续判断i<=100的值。短路计算功能可以提高程序的运行速度。 作者建议读者:在程序设计时使用&&和||运算符,不使用&和|运算符。 用逻辑与(&&)、逻辑或(||)和逻辑非(!)可以组合出各种可能的逻辑表达式。逻辑表达式主要用在 if、while等语句的条件组合上。 例如: int i = 1; while(i>=1) && (i<=100) i++; //循环过程 上述程序段的循环过程将i++语句循环执行100次。 4.位运算符 位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。 位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。 位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。 位运算示例 运算符 名称 示例 说明 & 位与 x&y 把x和y按位求与 | 位或 x|y 把x和y按位求或 ~ 位非 ~x 把x按位求非 ^ 位异或 x^y 把x和y按位求异或 >> 右移 x>>y 把x的各位右移y位 << 左移 x<<y 把x的各位左移y位 >>> 右移 x>>>y 把x的各位右移y位,左边填0 举例说明: (1)有如下程序段: int x = 64; //x等于二进制数的01000000 int y = 70; //y等于二进制数的01000110 int z = x&y //z等于二进制数的01000000 即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。 (2)右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段: int x = 70; //x等于二进制数的01000110 int y = 2; int z = x>>y //z等于二进制数的00010001 即运算结果为z等于二进制数00010001,即z等于十进制数17。 对于如下程序段: int x = -70; //x等于二进制数的11000110 int y = 2; int z = x>>y //z等于二进制数的11101110 即运算结果为z等于二进制数11101110,即z等于十进制数-18。要透彻理解右移和左移操作,读者需要掌握整数机器数的补码表示法。 (3)0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。 5.其他运算符 (1)赋值运算符与其他运算符的简捷使用方式 赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。 赋值运算符与其他运算符的简捷使用方式 运算符 用法 等价于 说明 += s+=i s=s+i s,i是数值型 -= s-=i s=s-i s,i是数值型 *= s*=i s=s*i s,i是数值型 /= s/=i s=s/i s,i是数值型 %= s%=i s=s%i s,i是数值型 &= a&=b a=a&b a,b是逻辑型或整型 |= a|=b a=a|b a,b是逻辑型或整型 ^= A^=b a=a^b a,b是逻辑型或整型 <<= s<<=i s=s<<i s,i是整型 >>= s>>=i s=s>>i s,i是整型 >>>= s>>>=i s=s>>>i s,i是整型 (2)方括号[]和圆括号()运算符 方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。 圆括号()运算符用于改变表达式中运算符的优先级。 (3)字符串加(+)运算符 当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。如对于如下程序段: int max = 100; System.out.println("max = "+max); 计算机屏幕的输出结果为:max = 100,即此时是把变量max中的整数值100转换成字符串100输出的。 (4)条件运算符(?:) 条件运算符(?:)的语法形式为: <表达式1> ?<表达式2> : <表达式3> 条件运算符的运算方法是:先计算<表达式1>的值,当<表达式1>的值为true时,则将<表达式2>的值作为整个表达式的值;当<表达式1>的值为false时,则将<表达式3>的值作为整个表达式的值。如: int a=1,b=2,max; max = a>b?a:b; //max等于2 (5)强制类型转换符 强制类型转换符能将一个表达式的类型强制转换为某一指定数据类型,其语法形式为: (<类型>)<表达式> (6)对象运算符instanceof 对象运算符instanceof用来测试一个指定对象是否是指定类(或它的子类)的实例,若是则返回true,否则返回false。 (7)点运算符 点运算符“.”的功能有两个:一是引用类中成员,二是指示包的层次等级。 6.运算符的优先级 以下按优先级从高到低的次序列出Java语言中的所有运算符,表中结合性一列中的“左?右”表示其运算次序为从左向右,“右?左”表示其运算次序为从右向左。 优先级 运算符 结合性 1 . [] () ; , 2 ++ ―― += ! ~ +(一元) -(一元) 右?左 3 * / % 左?右 4 +(二元) -(二元) 左?右 5 << >> >>> 左?右 6 < > <= >= instanceof 左?右 7 = = != 左?右 8 & 左?右 9 ^ 左?右 10 | 左?右 11 && 左?右 12 || 左?右 13 ?: 右?左 14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右?左

阅读全文

与运算命令相关的资料

热点内容
滴滴app有青桔优惠券怎么用 浏览:123
删哪几个文件夹加速 浏览:28
创建电影源码爬取项目 浏览:453
java多余的空格 浏览:83
手机软件连接云服务器 浏览:888
内圆弧编程实例 浏览:48
饼干pdf 浏览:423
kylin源码大全 浏览:687
android构建工具 浏览:422
zigy命令行选项不兼容 浏览:561
加密系统能录屏吗 浏览:190
安卓淘宝点进去跳链接如何关闭 浏览:786
u盘加密了手机读取不了 浏览:947
oracle11g启动命令 浏览:931
怎么把视频传到自己的文件夹 浏览:700
福州电动车在哪个app上摇号 浏览:818
礼书PDF 浏览:667
什么app看本子 浏览:394
如何学好编译语言 浏览:591
平面编程和切削 浏览:704