黑马程序员技术交流社区

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

作者: 记忆深处里    时间: 2014-10-25 10:13
标题: 运算问题
System.out.println(9>>3);的输出结果是1.
System.out.println(3>>3);的输出结果为什么是0阿 ???


作者: 付江涛    时间: 2014-10-25 10:28
既然知道9右移3位是1,那就应该明白3右移3位为什么是0。原理相同,自己画一下图。
作者: staycolorful    时间: 2014-10-25 10:47
9是1001  右移三位是1
3是0011  右移三位是0
作者: xiaotian44    时间: 2014-10-25 11:42
这是位运算,要先把十进制的数化成二进制表示,9是1001,3是0011,右移三位,相当于把右边的截去3位,当然,这指的是无符号的运算。
作者: 记忆深处里    时间: 2014-10-25 16:51
xiaotian44 发表于 2014-10-25 11:42
这是位运算,要先把十进制的数化成二进制表示,9是1001,3是0011,右移三位,相当于把右边的截去3位,当然, ...

恩 ,懂了  谢谢
作者: 记忆深处里    时间: 2014-10-25 16:59
付江涛 发表于 2014-10-25 10:28
既然知道9右移3位是1,那就应该明白3右移3位为什么是0。原理相同,自己画一下图。 ...

恩 原来我多想了




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