可以以编程方式存在负零吗?

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)