显示整数的 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 的正数,int
和 short
的前(低)16 位相同,但对于负数则不同。
short num = short.Parse(inputnumber);
这是正确的行为,因为它以这种方式存储在计算机中。这就是所谓的 two's complement ,其中最高有效位(最左边)告诉您这是一个负数。还要记住 int 包含 32 位
我需要你的帮助,这是我的代码的一部分,但有一个问题我无法解决。
请帮助我;
这就是我现在所做的,我可以得到 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 的正数,int
和 short
的前(低)16 位相同,但对于负数则不同。
short num = short.Parse(inputnumber);
这是正确的行为,因为它以这种方式存储在计算机中。这就是所谓的 two's complement ,其中最高有效位(最左边)告诉您这是一个负数。还要记住 int 包含 32 位