黑马程序员技术交流社区

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

作者: 黑龙江—刘鹏    时间: 2012-7-3 12:24
标题: 位运算问题
本帖最后由 412647737 于 2012-7-3 12:32 编辑

class zlianxi
{
public static void main(String[] args)
{
  int x = 1, y = 1;
  if(x++== 2 & ++y==2)
   x = 7;
  System.out.println("x="+x+",y="+y);
  int z = 6;
  System.out.println(z>>>1);
}
}
运行后 没问题
class zlianxi
{
public static void main(String[] args)
{
  int x = 1, y = 1;
  if(x++== 2 & ++y==2)
   x = 7;
  System.out.println("x="+x+",y="+y);
  int z = 6;
  System.out.println(z<<<1);
}
}
运行后 语法问题 难道<<<不能应用于左移啊{:soso_e153:}

作者: 蒋映辉    时间: 2012-7-3 12:28
是的  只有无符号右移,没有无符号左移.....
作者: 黑龙江—刘鹏    时间: 2012-7-3 12:30
{:soso_e163:}哦了 哈哈
作者: 金龙    时间: 2012-7-3 12:38
>>>是无符号右移,无论被移走几位,最高位始终用零补,因为涉及到正数的符号位是0,负数的符号位是1.所以才会有无符号右移,否则,用>>去移负数永远也移不光,所以才会>>>,  而左移呢,不论你怎么移,最低位都是用零补的,所以,压根就没有<<<这个符号。当然要报错
作者: 邵阳    时间: 2012-7-3 12:42
蒋映辉 发表于 2012-7-3 12:28
是的  只有无符号右移,没有无符号左移.....

楼主不要顾着回答问题,你主要是加技术分啊




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