java运算优先级

android 与 位运算 java 位与运算_运算符

利用短路现象:
在程序设计时使用&&和||运算符,不建议使用&和|运算符。
四:位运算符:
位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。
位与’&’,位或’|’,位非’~’,位异或’^’,右移’>>’,左移’<<’,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。

转换原则:
从低精度向高精度转换byte 、short、int、long、float、double
低精度到高精度会自动转换,而高精度到低精度则要类型强制转换。
注意:
①数值计算中语法现象——“晋升”,即:byte、short和char(低于int的数据类型)进行算术运算后,结果会自动提升成int类型;
②两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换;
③算数运算可以加入小括号”()”提高优先级,优先小括号内运算,再其他运算符运算;
④算数运算前操作数变量必须赋值,反之,报语法错误。