您的位置:首页 > 编程语言 > Java开发

java移位运算符实验程序:<<(左移)、>>(带符 号右移)和>>>(无符号右移)

2014-06-20 11:24 357 查看
public class txs {

static void leftbit(){

int i; //整型长度为32位 //位

int num=0xFFFFFFE; //1111 1111 1111 1111 1111 1111 1110 //28

for(i=0;i<28;i++){

//循环一次向左移动一位,丢弃最高位,0补最低位

num=num<<1; //1111 1111 1111 1111 1111 1111 1110 0 //29

//1111 1111 1111 1111 1111 1111 1110 00 //30

//1111 1111 1111 1111 1111 1111 1110 000 //31

//1111 1111 1111 1111 1111 1111 1110 0000 //-32

//1111 1111 1111 1111 1111 1111 1100 0000 //-64

System.out.println(num);

}

}

static void rightbit(){

int i; //整型长度为32位 //位

int num=0xFFFFFFE; //1111 1111 1111 1111 1111 1111 1110 //28

for(i=0;i<4;i++){

//循环一次向右移动一位 符号位不变,左边补上符号位

num=num >> 1; //1111 1111 1111 1111 1111 1111 111 //27

//1111 1111 1111 1111 1111 1111 11 //26

//1111 1111 1111 1111 1111 1111 1 //25

//1111 1111 1111 1111 1111 1111 //24

System.out.println(num);

}

}

//无符号右移

//

static void unregist_rightbit(){

int i; //整型长度为32位 //位

int num=0xFFFFFFE; //1111 1111 1111 1111 1111 1111 1110 //28

for(i=0;i<4;i++){

//循环一次向右移动一位 忽略符号位扩展,0补最高位

num=num >>> 28; //1111 1111 1111 1111 1111 1111 111 //27

//1111 1111 1111 1111 1111 1111 11 //26

//1111 1111 1111 1111 1111 1111 1 //25

//1111 1111 1111 1111 1111 1111 //24

System.out.println(num);

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

//leftbit();

rightbit();

System.out.println("================");

unregist_rightbit();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐