Java中的位运算包括以下几种:
按位与(&):对应位上,如果两个数都是1,则结果为1,否则为0。
int a = 3; // 二进制 0011 int b = 5; // 二进制 0101 // 0001 = 1 System.out.println("a & b = " + (a & b));
按位或(|):对应位上,如果两个数有一个为1,则结果为1,否则为0。
int a = 3; // 二进制 0011 int b = 5; // 二进制 0101 // 0111 = 7 System.out.println("a | b = " + (a | b));
按位异或(^):对应位上,如果两个数不相同,则结果为1,否则为0。
int a = 3; // 二进制 0011 int b = 5; // 二进制 0101 // 0110 = 6 System.out.println("a ^ b = " + (a ^ b));
按位取反(~):对每一位,将0变为1,将1变为0。
// ~ 的运算规则: // ~0 = -1 // ~1 = -2 // ~2 = -3 // ~3 = -4 // 因此,~3 = 1100 = -4 int a = 3; // 二进制 0011 // 1100 = -4 // a + ~a = -1 ,等于 1111 // 1111 + 1 = 0000 = 0 System.out.println("~a= " + (~a));
左移(<<):将二进制数向左移动指定位数,右边用0填充。
int b = 5; // 二进制 0101 // 1010 = 10 b << 1 // 10100 = 20 b << 2 System.out.println("b << 2 " + (b << 1));
右移(>>):将二进制数向右移动指定位数,左边用符号位填充。
int b = 5; // 二进制 0101 // 0010 = 2 b >> 1 // 0001 = 1 b >> 2 System.out.println("b >> 2 " + (b >> 2));标签:Java,运算,int,0101,System,解读,二进制,println,out From: https://www.cnblogs.com/kuangmeng/p/17748463.html