我有两个二进制数字。我想添加一个=( - 0)和b =( - 0),如果我添加数字,我输出中什么都没有。我想要一个输出(-0)而不转换为十进制。有可能吗?
这是我的代码:
int b1, b2;
int i = 0, rem = 0;
int[] sum = new int[20];
Console.WriteLine("Enter the first binary number: ");
b1 = int.Parse(Console.ReadLine());
Console.WriteLine("Enter the second binary number: ");
b2 = int.Parse(Console.ReadLine());
while (b1 != 0 || b2 != 0)
{
sum[i++] = (b1 % 10 + b2 % 10 + rem) % 2;
rem = (b1 % 10 + b2 % 10 + rem) / 2;
b1 = b1 / 10;
b2 = b2 / 10;
}
if (rem != 0)
sum[i++] = rem;
--i;
Console.WriteLine("Sum of two binary numbers: ");
while (i <= 0)
Console.Write("{0}", sum[i--]);
Console.ReadLine();
答案 0 :(得分:0)
好的,所以基于你的答案,如果你的答案是零,你听起来想要在答案前面显示一个负号,我认为当sum
数组中的每个元素都是价值0
。
在上一个while
循环之前,您可以插入这段代码:
if (Array.TrueForAll(sum, n => n == 0))
Console.Write("-");
当且仅当sum
数组中的每个元素都是值0时,这将打印一个负号。请注意,此代码属于外最后一个while循环。
我还应该指出,你的最后一个while循环条件应该是while (i >= 0)
。