import static net.mindview.util.Print.*;
public class BitTest {
static void binaryPrint(int q) {
if (q == 0)
System.out.print(0);
else {
int nlz = Integer.numberOfLeadingZeros(q);
q <<= nlz;
for (int p = 0; p < 32 - nlz; p++) {
int n = (Integer.numberOfLeadingZeros(q) == 0) ? 1 : 0;
System.out.print(n);
q <<= 1;
}
}
System.out.println("");
}
public static void main(String[] args) {
int i = 1 + 4 + 16 + 64;//1010101
int j = 2 + 8 + 32 + 128;//10101010
int k = 0x100;//100000000
int m = 0;//0
print("Using Integer.toBinaryString():");
print("i = " + Integer.toBinaryString(i));//1010101
print("j = " + Integer.toBinaryString(j));//10101010
print("k = " + Integer.toBinaryString(k));//100000000
print("m = " + Integer.toBinaryString(m));//0
print("i & j = " + (i & j) + " = " + Integer.toBinaryString(i & j));//0
print("i | j = " + (i | j) + " = " + Integer.toBinaryString(i | j));//11111111
print("i ^ j = " + (i ^ j) + " = " + Integer.toBinaryString(i ^ j));//11111111
//取反运算符
print("~i = " + Integer.toBinaryString(~i));//25个0+1010101,按位取反得到11111111111111111111111110101010
print("~j = " + Integer.toBinaryString(~j));//同理:11111111111111111111111101010101
print("Using binaryPrint():");
print("i = " + i + " = ");//1010101,表示十进制数85
binaryPrint(i);//1010101
print("j = " + j + " = ");//10101010,表示十进制170
binaryPrint(j);//10101010
print("k = " + k + " = ");//表示十进制256
binaryPrint(k);//100000000
print("m = " + m + " = ");//表示十进制0
binaryPrint(m);//0
print("i & j = " + (i & j) + " = ");//1010101&10101010,根据与运算法则,全1为1,有0即0,得到0
binaryPrint(i & j);//0
print("i | j = " + (i | j) + " = ");//或运算,有1即1,全0则0,即为11111111,十进制表示255
binaryPrint(i | j);//1111111
print("i ^ j = " + (i ^ j) + " = ");//异或运算,相同为0,不同为1,即11111111,十进制表示255
binaryPrint(i ^ j);//1111111
print("~i = " + ~i + " = ");//-86表示成2进制即为11111111111111111111111110101010,
//表示过程为,-86变为(无符号)二进制为25个0+1010110,按位取反即25个1+0101001,加1得到11111111111111111111111110101010
binaryPrint(~i);//11111111111111111111111110101010
print("~j = " + ~j + " = ");
binaryPrint(~j);//11111111111111111111111101010101
}
}
不解释,直接看代码,还望各路大神指教