跟汤老师学Java笔记: 位运算

跟汤老师学Java笔记:位运算

完成:第一遍

1.什么是位运算?

主要针对二进制的位进行运算,需要将值转换为二进制后进行按位运算

2.位运算符有哪4种?

7种位运算符:&按位与、|按位或、~按位取反、
^ 异或、>> 右移、<< 左移、>>> 无符号右移

3.位运算符和逻辑运算符的区别是什么?

逻辑运算符是针对布尔值进行运算
位运算符是针对二进制数的位进行运算

package code02;

public class Test06 {
	
	public static void main(String[] args)
	{
		// 5二进制为00000000 00000000 00000000 00000101
		int a = 5; 
		// 8二进制为00000000 00000000 00000000 00001000
		int b = 8; 
		// 与:两位都为1,则为1,否则为0
		// 00000000
		System.out.println("a & b : "+(a & b)); 
		// 或:只要有一个1,则为1,否则为0
		// 00001101
		System.out.println("a | b : "+(a | b)); 
		// 非:如果为1,则为0,如果为0,则为1
		// 11111111 11111111 11111111 11111010
		//这是负数,补码=反码+1,反码就是5+1=6,即-6
		System.out.println("~a  : "+(~a)); 
		//异或:如果两位相同则为0,不同则为1
		//00001101
		System.out.println("^a  : "+(a^b)); 
		//左移:将二进制的所有位都向左移指定的位数,末尾补0
		//00010100
		System.out.println("a<<2 : "+(a<<2)); 
		//右移:将二进制的所有位都向右移指定的位数,高位补符号位
		//00000001
		System.out.println("a>>2 : "+(a>>2)); 
		//无符号右移:将二进制的所有位都向右移指定的位数,高位补0
		System.out.println("a>>>2 : "+(a>>>2));
		
	}
}

你可能感兴趣的:(Java之运算符)