1

あなたの助けが必要です。これは私のコードの一部ですが、解決できない問題があります。助けてください。これは私が今やったことです.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
4

2 に答える 2

4

C#intでは 32 ビット型です。short代わりに (16 ビット型)を使用する必要があります。32767 までの正の数の場合、 と の最初の (下位) 16 ビットはint同じshortですが、負の数の場合は異なります。

short num = short.Parse(inputnumber);
于 2015-10-11T19:42:35.213 に答える
0

このようにコンピュータに保存されるため、これは正しい動作です。これはいわゆる2 の補数で、最上位ビット (最左端) がこれが負の数であることを示します。int には 32 ビットが含まれることにも注意してください。

于 2015-10-11T19:43:41.833 に答える