前言

剖析与计算

上代码

		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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43976226/article/details/125168208