我正在尝试制作一个二进制计算器,它减去两个二进制数(仅以 2 为基数)而不解析它。
任何人都可以帮助我解决上数字为零和下数字为一的情况,我似乎无法为其编写代码。
for (int i = ss.length()-1; i > -1; i--)
{
if(s.charAt(i)=='0' && ss.charAt(i)=='0') sb.append("0");
else if (s.charAt(i)=='1' && ss.charAt(i)=='0') sb.append("1");
else if (s.charAt(i)=='1' && ss.charAt(i)=='1') sb.append("0");
else
{
sb.append("1");
doit(s,i+1,sb);
}
}
for (int i = s.length() - ss.length(); i >-1; i--)
{
sb.append(s.charAt(i));
}
ArrayList<Character> res = new ArrayList<>();
for (int i = sb.length()-1; i > -1; i--)
{
res.add(sb.charAt(i));
}
System.out.println(res);
}
public static void doit(StringBuilder s, int i, StringBuilder sb)
{
for (int j = i; j > -1; j--)
{
if(s.charAt(j)=='0')
{
s.setCharAt(j, '1');
}
else
{
s.setCharAt(j, '0');
break;
}
}
}