论坛首页 入门技术论坛

java 位移运算符

浏览 2071 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-08-27  
“ < <”, “> > ”, “> > > ”在Java中是左移、有符号右移和无符号右移运算符。位移运算符只对int值进行操作,如果不是int,编译器会报错。在Java中,一个int的长度始终是32bit,也就是4个字节。

(1)左移动运算符:
会将操作的数向左边移动,移动的位的个数由左操作数指定,左移后,低位会被自动补零(0)。
(2)右移动运算符:
反过来,把操作数向右移动,移动的位个数同样由右操作数指定。注意:面对带正负号的数,会采用符号扩展,如果原值是正数,则高位补上0;如果原值是负数,高位补1。
(3)无正负号的右移运算符(>>>):
采用0补充,意思就是说,无论是正号还是负号,都在高位补0。
(4)注意,没有<<<这个运算符

下面我要对这三个运算符进行详细解析:

1:准备 知识

能够将 正数 和 负数 的二进制码进行 熟练的转换;

转换原则: 取反加“1”
2:实践示例
       int b1=16<<2;
       System.out.println(b1);
       int a1=16>>2;
       System.out.println(a1);
       int b11=-16<<2;
       System.out.println(b11);
       int a11=-16>>2;
       System.out.println(a11);
       int b111=-16>>>2;
       System.out.println(b111);
       int a111=16>>>2;
       System.out.println(a111);
输出
64
4
-64
-4
1073741820
4
----本节内容可以结合java进制转换,二进制和十进制来进一步分析
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics