可以以编程方式存在负零吗?
Can minus zero programmatically exist?
我有两个二进制数。我想添加 a=(-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();
好的,根据你的回答,如果你的答案是零,听起来你想在答案前面显示一个负号,我假设当你的 sum
数组中的每个元素都发生这种情况是值 0
.
在你最后一个 while
循环之前 你可以插入这段代码:
if (Array.TrueForAll(sum, n => n == 0))
Console.Write("-");
当且仅当 sum
数组中的每个元素的值为 0 时,这将打印一个负号。请注意,此代码属于 外部 你的最后一个 while 循环.
我还应该指出,您最后一个 while 循环的条件可能应该是 while (i >= 0)
。
我有两个二进制数。我想添加 a=(-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();
好的,根据你的回答,如果你的答案是零,听起来你想在答案前面显示一个负号,我假设当你的 sum
数组中的每个元素都发生这种情况是值 0
.
在你最后一个 while
循环之前 你可以插入这段代码:
if (Array.TrueForAll(sum, n => n == 0))
Console.Write("-");
当且仅当 sum
数组中的每个元素的值为 0 时,这将打印一个负号。请注意,此代码属于 外部 你的最后一个 while 循环.
我还应该指出,您最后一个 while 循环的条件可能应该是 while (i >= 0)
。