黑马程序员技术交流社区

标题: 位运算 [打印本页]

作者: 云淡风轻517    时间: 2015-4-26 13:42
标题: 位运算
1<<35为什么等价于于1<<3?

作者: l763631191    时间: 2015-4-26 13:58
本帖最后由 l763631191 于 2015-4-26 13:59 编辑

1/2的35次幂 =余数还是1     1/2的3次幂=余数1   结果都是1   也就是 1都比右边的小,余数都是取左边的1
作者: 云淡风轻517    时间: 2015-4-26 14:18
l763631191 发表于 2015-4-26 13:58
1/2的35次幂 =余数还是1     1/2的3次幂=余数1   结果都是1   也就是 1都比右边的小,余数都是取左边的1 ...

你说的好像是%运算

  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println(1<<3);
  6.                 System.out.println(1<<35);
  7.                 System.out.println(1<<36);
  8.         }
  9. }


  10. 结果:是 8 ,8 ,16
复制代码

作者: 呆呆呆呆孔    时间: 2015-4-26 14:25
一个int类型是4个字节,32个二进制位,1<<35次相当于1<<32位回到起始位置,再1<<3所以两者是等价的
作者: 云淡风轻517    时间: 2015-4-26 14:30
呆呆呆呆孔 发表于 2015-4-26 14:25
一个int类型是4个字节,32个二进制位,1

谢谢 了解了 开始没想明白
作者: l763631191    时间: 2015-4-26 14:39
本帖最后由 l763631191 于 2015-4-26 14:47 编辑
云淡风轻517 发表于 2015-4-26 14:18
你说的好像是%运算

说错了,是除运算
作者: Mr7952    时间: 2015-4-26 16:25
int类型32位二进制,35相当于转了一圈回来又到第3位,所以等价




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2