C++ - 从值中添加或减去"0"

Joh*_*ohn 7 c++

我正在查看下面的代码,我得到了逻辑,但我似乎无法理解它的用途是什么'0'.

class Solution
{
public:
    string addBinary(string a, string b)
    {
        string s = "";

        int c = 0, i = a.size() - 1, j = b.size() - 1;
        while(i >= 0 || j >= 0 || c == 1)
        {
            c += i >= 0 ? a[i --] - '0' : 0;
            c += j >= 0 ? b[j --] - '0': 0;
            s = char(c % 2 + '0') + s;
            c /= 2;
        }

        return s;
    }
};
Run Code Online (Sandbox Code Playgroud)

Pet*_*ker 8

C和C++标准要求字符'0'..'9'连续且不断增加.因此,要将其中一个字符转换为它所代表的数字,您需要减去'0'并将数字转换为代表它的字符'0'.