上代码
int i1 = -119;
String s1 = Integer.toBinaryString(i1);
System.out.println(s1);
int i2 = 240;
String s2 = Integer.toBinaryString(i2);
System.out.println(s2);
int i3 = i1&i2;
String s3 = Integer.toBinaryString(i3);
System.out.println(s3);
System.out.println(i1&i2);
知识回顾:
在 java 中 负数的二进制,是以补码存在的。
举个栗子:
int i=-19;
String s1 = Integer.toBinaryString(i);
System.out.println(s1);
19 的 原码:(1001 0011)反码:(1110 1100) 补码:(1110 1101)
但是上面代码打印出来的结果是 11111111111111111111111110001001 32位的,如果看后面8位,你会发现是相同的。
总结:当2个数都是1的时候,结果是1,其他都是0。



