左移右移问题和Math函数

一、左移和右移

<< 左移运算符   :就是该数对应二进制码整体左移,左边超出的部分舍弃,右边补零。举个例子: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值