java支持7个位运算符:
&按位与 两个都1,返回1,其他都是0
|按位或 只要有一个是1,就返回1
~按位非 0变1、1变0
^按位异或 不相同就是1、相同是0
<< 左移 5 << 2,左移动两位
>>右移
. >>>无符号右移 不变号,右移动后,左边空位补0
一般来说,位运算只能操作整数类型的变量或值。
举例:5&9,计算机底层是二进制,int类型是32位的。
5表示成2进制:00000101
9表示成2进制:00001001
5&9就是把二进制对应的数进行比对,形成一个新的二进制数,
//int 32 5表示成2进制:0000 0101
//9表示成2进制: 0000 1001 5&9结构 00000001 非5 11111010
//5与9的结果:
//1、带符号的整数都是用补码表示,补码=反码+1
//2、32位的整数,第一位是符号位0是正1是负数,取反码时符号位不变
//5的二进制 0000 0101 它的反码是 0111...11111010
// 补码是反码加1 、 0111...11111011 1000...00000100
System.out.println("5与9的结果"+(5 & 9));
System.out.println("非5的结果"+(~5));
System.out.println("5异或9的结果"+(5 ^ 9));
System.out.println("5左移动两位"+(5 << 2));
System.out.println("-5右移动两位"+(-5 >> 2));
System.out.println("-5右移动两位"+(-5 >>> 2));
/**
* 〈配套视频在------今日头条--鲨鱼微课---每天分享java教程--从初级到高级〉<br>〉
* @author 鲨鱼微课
* @create 2022/2/5
* @since 1.0.0
*/
public class ShaYuWeiKe {
public static void main(String[] args) {
System.out.println("配套视频今日头条--鲨鱼微课---每天分享java教程--从初级到高级");
}
}