Java笔试题:用最有效率的方法计算2乘以8

Java笔试题:用最有效率的方法计算2乘以8

答案是:2<<3

相关知识点:

整数乘法或整数除法所需要的时钟周期远远大于移位操作所需的时钟周期

首先要知道:
1.机器都是使用补码,运算也是使用补码运算。
2.正数的原码补码反码都一样。
3.补码与原码相互转换,其运算过程是相同。

可参考: 计算机中原码,反码,补码之间的关系

java移位运算符可以分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
ps:没有<<<因为左移无关符号位

1.<<是左移运算符。
左移的规则:丢弃最高位,0补最低位
如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。

2.>>是右移运算符。
右移的规则:符号位不变,左边补上符号位,即正数补零,负数补1。

3.>>>是无符号右移运算符
无符号右移的规则:忽略了符号位扩展,0补最高位

对于整数来说,左移n位,就相当于乘以 2的 n次方;而对于无符号整数和非负有符号整数,右移 n位则相当于整除 2的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值