位运算之位运算符
//位运算符
public class Test3 {
public static void main(String[] args) {
//位运算符的种类
/*
* & : 按位与
* | : 按位或
* ^ :异或(两个不一样的时候才为1,一样的话为0)
* ~ : 按位取反
* << :左移
* >> :右移
* >>> :无符号右移
* */
//在进行位运算的时候都得转成二进制补码形式
/*
* 3 : 00000000000000000000000000000011
* 4 : 00000000000000000000000000000100
* */
//3 和 4按位与
int a = 3 & 4;
System.out.println(a); //0
// 3 和 4按位或
int b = 3 | 4;
System.out.println(b); //7
//3 和 4按位异或
int c = 3 ^ 4;
System.out.println(c); // 7
//3 按位取反
int d = ~3;
System.out.println(d); //-4
//------------------------------左移,右移,无符号右移----------------------------------//
/*
* 左移或右移的两条规则(位的左移,右移,无符号右移都是对补码进行操作):
* 1: 正数移动后空缺位填充为 0
* 2: 负数移动后空缺位填充为 1
* 无符号右移: 无符号右移的空缺位不会关注符号位,只要空缺就会补0
* */
//4 : 00000000000000000000000000000100
//4 按位右移
//4 : 00000000000000000000000000000001
int e = 4>>2;
System.out.println(e); //1
//4 按位左移
//4 : 00000000000000000000000000010000
int f = 4<<2;
System.out.println(f); //16
//4 无符号右移
4 : 00000000000000000000000000000001
int g = 4>>>2;
System.out.println(g); //1
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/202572.html