显示整数的 16 位

display the 16 bits for the integer

我需要你的帮助,这是我的代码的一部分,但有一个问题我无法解决。 请帮助我; 这就是我现在所做的,我可以得到 16 位二进制形式的正整数
`

        Console.WriteLine("Enter an integer : ");

        string inputnumber = Console.ReadLine();

        int num = int.Parse(inputnumber);

        string value = Convert.ToString(num, 2).PadLeft(16, '0');

        Console.WriteLine("The bits are : {0}", value);
        Console.ReadKey();`

问题是我将如何获得 16 位二进制形式的整数的负值

喜欢;当我输入 5 时,我可以得到:0000000000000101

   and i need -5 -------------> 1111111111111011

在 C# 中 int 是 32 位类型。您应该改用 short(16 位类型)。对于最大 32767 的正数,intshort 的前(低)16 位相同,但对于负数则不同。

short num = short.Parse(inputnumber);

这是正确的行为,因为它以这种方式存储在计算机中。这就是所谓的 two's complement ,其中最高有效位(最左边)告诉您这是一个负数。还要记住 int 包含 32 位