java不常用的运算符
来源:互联网 发布:怎么知快怀孕了 编辑:程序博客网 时间:2024/05/21 22:58
java中的运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
其中自己不熟悉的有:与(&)、或(|)、非(~)、异或(^),<<,>>,>>>;
&:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:1111110010&10001001101,比较结果为:1000000转为十进制: 64。所以1010&1101=64;
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
使用instancesof时是(该运算符是双目运算符,左面的操作元是一个对象,右面是一个类或接口。当左面的对象是右面的类(或右边类的子孙类)创建的对象、或者是右边接口的实现类(或实现类的子孙类)的对象时,该运算符运算结果是true,否则是false。),在Android中还有一个isAssignableFrom,是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
以下摘自 http://blog.csdn.net/typa01_kk/article/details/45000535
逻辑运算符:
逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。
逻辑运算的数据和逻辑运算符的运算结果是boolean类型。
逻辑与'&&',逻辑或'||',逻辑非'!',逻辑异或'^',逻辑与'&',逻辑或'|'
逻辑运算符的真值表:
A和B是逻辑运算的两个逻辑变量;
两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。
注:异或相同为false,相反则为true。
利用短路现象:
在程序设计时使用&&和||运算符,不建议使用&和|运算符。 位运算符:位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。 位与'&',位或'|',位非'~',位异或'^',右移'>>',左移'<<',0填充的右移'>>>' 位运算的位与'&',位或'|',位非'~',位异或'^'与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值boolean型。
下边为位&运算: int a = 15; //x等于二进制数的00001111 int b = 6; //y等于二进制数的00000110 int c = x&y //z等于二进制数的00000110
结果为:二进制数的00000110
右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。
将一个数左移"<<"会使该值乘以2的幂。 将一个数右移>>"会使该值除以2的幂。 右移(补零)运算符,即无符号右移,">>>"永远不会产生负号,因为其符号位总是被补零。 不论被移动数是正数还是负数,左边移进的部分一律补0。
输出为:8 1
- System.out.println(1<<3);
- System.out.println(8>>3);
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。 右移和左移操作,是整数机器数的补码表示法。
&运算符规定必须信号A和B都被充电,其结果才是充电。(1表示充电,0表示未充电)
|运算符规定只要信号A或B被充电,输出结果就是充电。
^异或(XOR)运算符规定如果信号A或B之一被充电,但是信号A和B不是同时被充电,则结果为充电。
~运算符也称为按位求补,它翻转所有的充电状态值。
0 0
- java不常用的运算符
- java不常用运算符
- C#=> 不常用的运算符
- java的常用运算符
- java 常用运算符
- 3、Java常用的运算符
- Java的数据类型和常用运算符
- 关于java的常用运算符
- JAVA常用运算符极其运算优先级的总结
- JAVA不常用的修饰符
- java不常用的属性修饰符
- java 不使用 “+,-,*,/” 运算符计算两个整数的和
- Java移位运算,你可能不知道的运算
- Java入门 第一季第三章 常用的运算符
- Java基础2--常用的运算符--imooc
- JAVA入门第一季-3.常用的运算符
- Java语言常用的运算符和表达式详解
- C#中一个不常用的特殊运算符——"??"
- Sign up Error:(23, 17) Failed to resolve: junit:junit:4.12
- js 高程学习总结 第七章 函数表达式
- iOS微信支付和支付宝支付
- c++系统学习笔记
- JVM的内存区域划分(面试问题:你了解java内存模型么)
- java不常用的运算符
- hdu 1076 简单处理+递归
- javascript this的一些误解
- 浅读elastic-job总结所用设计模式
- 网络配置及文件服务
- iOS开发中 关于阿里云服务器的使用与安全策略 韩俊强的博客
- GPUview使用简介
- 如何在win8、win10中安装SQL Server 2005
- 使用 vue2+Vuex+Router 重写饿了么点餐系统和 vue 插件简析