一、左移和右移
<< 左移运算符 :就是该数对应二进制码整体左移,左边超出的部分舍弃,右边补零。举个例子:253的二进制码1111 1101,在经过运算253<<2后得到11 1111 0100。
>> 右移运算符 :该数对应的二进制码整体右移,左边的用原有标志位补充,右边超出的部分舍弃。
>>> 无符号右移 : 不管正负标志位为0还是1,将该数的二进制码整体右移,左边部分总是以0填充,右边部分舍弃。
number << 1 = number*2; number >> 1 = number/2
在移位操作前,编译器会先把数转换成int类型,由于int类型只占用32位,所以:number >> 32 = number
二、Math类中的round、ceil和floor方法
1、Math.round() :四舍五入(原理是原数据先+0.5再向下取整,返回值为int)
例:Math.round(11.4) = 11 ;Math.round(11.5) = 12 ; Math.round(-11.5) = 11 ; Math.round(-11.6) = -12
2、Math.ceil():向上取整 (返回值为double)
例:Math.ceil(11.4) = 12.0 ; Math.ceil(11.5) = 12 ; Math.ceil(-11.5) = -11 ;Math.ceil(-11.6) = -11
3、Math.floor():向下取整(返回值为double)
例:Math.floor(11.4) = 11.0 ; Math.floor(11.5) = 11 ; Math.floor(-11.5) = -12 ;Math.ceil(-11.6) = -12
更多推荐
函数,左移右移,Math
发布评论