前言
剖析与计算
上代码
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。
版权声明:本文为weixin_43976226原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。