java 位运算

java 位运算符有 &  |  ~  ^  <<  >>  >>>

所有运算运算之前将参与运算的数转二进制,下面以int类型的 0, 1为例进行测试。int类型内存中占32bit,及2进制数总32位,部分为0的以简化保留8位。

        int a = 0;
int b = 1;
public void testBitwise(){
// 0 二进制  00000000
// 1二进制   00000001
// & 相同位都为 1, 结果对应位为1,否则为0
int result1 = a & b; // --> 00000000 十进制 0
System.out.println(result1);

// | 相同位有1 结果结果对应位为1,否则为0
int result2 = a | b; // --> 00000001 十进制 1
System.out.println(result2);

// ^ 相同位不同结果位为1,否则为0
int result3 = a ^ b; // --> 00000001 十进制 1
System.out.println(result3);

// << num, 左移num位运算, 十进制中相当于运算参数乘 2^num 
int result4 = b << 3; // --> 00001000 十进制下 8
System.out.println(result4);

// >> num, 右移num位运算, 十进制中相当于运算参数除 2^num 结果取整 
int temp = 20; // -> 00010100
int result5 = temp >> 3; // --> 00000010 十进制下 2
System.out.println(result5);

// >>> num, 无符号右移num位运算, 无符号指不受符号位影响,高位补0
int result6 = temp >>> 3; // --> 00000010 十进制下 2
System.out.println(result6);

int temp2 = -20; // --> 11111111 11111111 11111111 11101011
int result7 = temp2 >>> 24; // --> 00000000 00000000 0000000 1111111 十进制下255
System.out.println(result7);
}

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值