java之移位操作

来源:互联网 发布:java replaceall \ 编辑:程序博客网 时间:2024/06/06 00:52

======================================================
注:本文源代码点此下载
======================================================

java中共有3种移位操作符,分别为">"(右移位操作符)和">>>"(无差别右移位操作符)。

对于java语言中的移位操作需要注意以下3点:

1.移位操作的对象时整形数据(int)或者长整形数据(long),对于char、byte和short数据自动执行向上转型为int。

2.符号位参与到移位过程,对于">",移位是带符号的,在高位补与原符号位相同的数字,即正数高位补0,负

数低位补1;对于">>>",移位操作是无差别的,在高位补0。

3.第三个问题是关于移位操作的宽度问题。移位宽度为截取移位操作的右操作数低五位得到的正整数,因此取值范围为0

~31(对于长整形为低6位,因此取值范围为0~63)。

下面是一个小例子:

public class cycle {

/**

* @param args

*/

public static void main(string[] args) {

// todo auto-generated method stub

shift();

}

public static void shift(){

int i = -1;

system.out.println(i + ":");

system.out.println(integer.tobinarystring(i));

i = i >>> 31;

system.out.println(i + ":");

system.out.println(integer.tobinarystring(i));

int j = -1;

j = j >> 1;

system.out.println(j + ":");

system.out.println(integer.tobinarystring(j));

}

}


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/