Java 理解二进制加法程序

Java 理解二进制加法程序,java,binary,Java,Binary,这个程序是关于Java的: 我很难理解这个程序 为什么我们必须在这里用0减法 sum += s1.charAt(first) - '0'; 这里的>运算符和&运算符有什么用途: carry = sum >> 1; sum = sum & 1; sb.append(sum == 0 ? '0' : '1'); 你能帮我理解这个节目吗 为什么我们要在这里用0减法 sum += s1.charAt(first) - '0';

这个程序是关于Java的:

我很难理解这个程序

为什么我们必须在这里用
0
减法

sum += s1.charAt(first) - '0';
这里的
>
运算符和
&
运算符有什么用途:

        carry = sum >> 1;
        sum = sum & 1;
        sb.append(sum == 0 ? '0' : '1');
你能帮我理解这个节目吗

为什么我们要在这里用0减法

 sum += s1.charAt(first) - '0';
这是将字符
'0'
'1'
转换为数字
0
1

这里的
>
运算符和
&
运算符有什么用途:

        carry = sum >> 1;
        sum = sum & 1;
        sb.append(sum == 0 ? '0' : '1');
>
将一位向右移位,
&
屏蔽除最右边一位之外的所有位


我建议您查找并阅读一本关于Java中按位操作工作原理的教程。这是非常基本的东西。一旦您了解了基本知识,您就应该能够阅读和理解与您向我们展示的代码类似的代码。

谢谢,您能否解释一下>>和&在这里如何解决二进制加法问题。我理解运算符是如何工作的,但不清楚这是如何解决这个加法程序的。显然,这两个语句正在计算进位是什么。你读过关于二进制加法是如何工作的吗?