ternary operator
现在给一个小数,需要求出其四舍五入之后的结果,怎么完成该功能?
思路:取得整数部分,再取得小数部分,再判断小数部分和0.5的大小关系,若大于等于,结果就是整数部分加1,否则就是整数部分。
三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义又表示if-else.
语法格式:X?Y:Z,其
中x为boolean类型表达式,先计算x的值,若x结果为true则整个三目运算表达式的结果是Y,否则就是Z。三目运算符结果的类型由Y和Z决定。
练习:
1):两个数求最大值/最小值:
2):判断一个数是奇数还是偶数.
logical operator
分析下列语句什么意思:
张三与李四周末要值班:二者都来值班才是我期待的结果。
张三或李四周末要值班:二者只要有一个值班就是我期待的结果。
用于操作两个boolean类型的变量或常量,结果类型也是boolean。
语法格式为:boolean result = 表达式A 逻辑运算符 表达式B;
&:表示并且,当操作数A和B都为true结果才为true,否则结果result 是false。
&&:和&结果相同,具有短路效果,如果左边操作数A是false,result 一定为false,且不运行B的运算。
|:表示或者,A和B都为false结果为false,只要有A或B是true,结果就是true。
||:和|结果相同,具有短路效果,如果左边操作数A是true,result 一定为true,且不运行B的运算。
^:判断A和B是否不同,不同则为true,相同则为false。
!:取反,true结果是false,!false结果是true。
bit operator
若要交换两个变量的值,如int a = 3,int b = 5,交换后a 等于
5,等于3,我们可以定义第三方的变量来完成。现在要求使用最快的方式完成,怎么做?
位操作是程序设计中对位模式按位或二进制数的一元和二元操作。
boolean的true和false,在底层使用一位的1 和0来表示.
true:1
false:0
遵循规则:
&:参与运算的两个数,若相应位数的值都为1,则该位结果值位1,否则是0.
|:参与运算的两个数相应位中只要有一个1,结果就是1。
^:参与运算的两个数相应位相同则结果为0,否则为1。
~:表示把每个二进制位的“1”换成“0”,把“0”换成“1”。
<<<:将操作数的二进制码整体左移指定位数,左移之后的空使用“0”来补充。
>>:将操作数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充:
若是正数使用“0”补充;
若是负数使用“1”补充;(操作负数:取反,求补,操作,取反,求补)
>>>:将操作数的二进制码整体右移指定位数,右移之后的空位使用“0”来补充。
Operation priority
以前学运算符的时候,老师都会教我们运算的优先级,比如“先乘除后加减”等,在Java里我们学了这么多的运算符,那到底先执行那个运算符呢,
一起来看下Java运算符的优先级吧。