彩票走势图

Java的位移运算巧方法

转帖|其它|编辑:郝浩|2011-08-24 14:16:57.000|阅读 328 次

概述:本文主要讲讲Java的位移运算巧方法,希望对大家有帮助。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  左移操作: x 《《 n

  x可以是byte, short, char, int, long基本类型, n(位移量)只能是int型

  编译器的执行步骤:

  1) 如果x是byte, short, char类型, 则将x提升为int;

  2) 如果x是byte, short, char, int类型, 则n被重新赋值(过程是:取n的补码的低5位再转成十进制的int值,相当对n取32模: n=n2);

  如果x是long型, 则n被重新赋值(过程是:取n的补码的低6位再转成十进制的int值,相当对n取64模: n=nd);

  (因为int类型为4个字节,即32位,移动32位将没有任何意义.对于long则是模64)

  3) 对x左移n个位数, 整个表达式产生一个新值(x的值不变);

  《《是左移符号,列x《《1,就是x的内容左移一位(x的内容并不改变)

  》》是带符号位的右移符号,x》》1就是x的内容右移一位,如果开头是1则补1,是0责补0,(x的内容并不改变).

  》》》是不带符号位的右移,x》》》1就是x的内容右移一位,开头补0(x的内容并不改变)

  补充说明:

  Java代码

  // 左移: 向左移动,右边补0

  for (int i = 0;i < 8 ;i++)

  System.out.print( (1 << i) + " ");

  // 右移: 向右移动,如果符号位(int型为32位)为0,左边补0,符号位为1,左边补1

  // 符号位为1的右移

  for (int i = 0;i < 8 ;i++)

  System.out.print( Integer.toHexString(0x40000000 >>; i) + " ");

  output

  40000000 20000000 10000000 8000000 4000000 2000000 1000000 800000

  // 符号位为1的右移

  // 最高4位为1000, 右移1位,变成1100也就是c,

  for (int i = 0;i < 8 ;i++)

  System.out.print( Integer.toHexString(0x80000000 >> i) + " ");


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP