位运算符:
<<左移
>>右移
>>>无符号右移
& 与运算 :两位全为1,结果为1,否则为0
| 或运算:两位只要有一个为1,结果为1,否则为0
^异或运算:两位一个为0,一个为1结果为1,否则为0
~ 非运算符:0->1,1->0 非运算即取反运算,在二进制中1变0,0变1
位运算 是直接对二进制直接进行计算
public class BitOperation {
public static void print32(int num){
//我的解读:
//num:要打印出32位二进制数的int整数
//先让num这个数字 和 1 << 31位 这个数 与运算(&)
//1 << 31 会得到一个第一位是1,后面全是0的数
//1 << 30 会得到一个第二位是1,后面全是0的数
//以此类推...
//相当于循环32次,从第一位开始比较,一直到最后
//如果num和 1 << i 与运算 == 0,说明第i位是0,否则第i位是1
//因为 与运算 的特点是,1和0=0,0和1=0,1和1=1.
//然后再用一个三元运算符做条件判断即可
//(条件表达式) ? true : false
for(int i = 31; i >= 0;i--){
System.out.print( (num & 1 << i) == 0 ? 0 : 1);
}
}
public static void main(String[] args) {
int num = 2;
print32(num);
}
}