版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TONGZONGE/article/details/90112874
与: 求同存异;
或: 相同为同,不同为异;
异或: 相同为0,不同为1;
按位取反: 每位取反。
例如:
public class 补码__二进制 {
/*
* 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
*/
public static void main(String[] args) {
int a=5;
// 00000000 00000000 00000000 00000101
a = a << 1; //左移
// 00000000 00000000 00000000 00001010
System.out.println(a);
a=5;
a = a>>1; // 右移
//00000000 00000000 00000000 00000010
System.out.println(a);
int b=-5;
//00000000 00000000 00000000 00000101 // 5 原码
//11111111 11111111 11111111 11111010 // 取反
//11111111 11111111 11111111 11111011 // 加1
b = b<<1; // 负数左移
System.out.println(b);
//11111111 11111111 11111111 11110110
b=5;
b = b>>1; // 负数右移
//11111111 11111111 11111111 11111101
System.out.println(b);
int c=5;
int d=10;
// 00000000 00000000 00000000 00000101
// 00000000 00000000 00000000 00001010
//---------------------------------------
// 00000000 00000000 00000000 00000000 // 与
// 00000000 00000000 00000000 00001111 // 或
c =7;
// 00000000 00000000 00000000 00000111
// 00000000 00000000 00000000 00001010
//-------------------------------------
// 00000000 00000000 00000000 00001101 // 异或
// 11111111 11111111 11111111 11111000 // 按位取反
System.out.println(c&d);
System.out.println(c|d);
System.out.println(~c);
}
}