gpt4 book ai didi

java - 尝试用java程序减去二进制数小错误

转载 作者:行者123 更新时间:2023-12-01 04:21:25 26 4
gpt4 key购买 nike

我正在制作一个简单的加减二进制计算器。我让它接受一个数字并将其转换为二进制数,我什至让它将数字相加。当我尝试让它减去它时,它不起作用。我得到一个奇怪的输出。这是代码片段。

int [ ] subtarctBin = new int [16];
int carryX = 0;
for (int i = 0; i < 16; i++)
{
subtarctBin[i] = 0;
}
for (int i = 15; i >= 0; i--)
{
int subtract = resultBinA[i] - resultBinB[i] - carryX;
subtarctBin[i] = subtract % 2;
carryX = subtract / 2;

}
System.out.println("");
System.out.print("DIF:");
for(int i=0; i<16; i++)
{
System.out.print(subtarctBin[i]);
}
}

最佳答案

除了@Ken Y-N的回答之外,我发现在这个语句中,您正在从第二个数字中减去第一个数字以及进位X。

  int subtract = resultBinA[i] - resultBinB[i] - carryX;

我认为你应该确保第一个数字是两个数字中较大的一个(即 resultBinB > resultBinA),然后减法应该像这样:

  int subtract =  (resultBinB[i] + carryX) - resultBinA[i];

关于java - 尝试用java程序减去二进制数小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18862614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com