-1

負の数を 8 ビットのバイナリ形式に変換しようとしています。ここに私のコードがあります:-

 UTF8Encoding Bencoding = new UTF8Encoding();
 int a=-3;
 byte[] Bbuf = Bencoding.GetBytes(a.ToString());

 StringBuilder Binfobinary = new StringBuilder();
 foreach (byte b in Bbuf)
 {
     string str = Convert.ToString(b, 2);
     Binfobinary.Append(str);
 }

それは私にこのような答えを与えます 101101110011

4

2 に答える 2

4

Convert.ToString(int, int)8 ビット表現が必要な場合は、 のオーバーロードがないため、 で取得した 32 ビット表現の結果から余分な 24 ビットを取り除くのが最善の策ですConvert.ToString(sbyte, int)

string str = Convert.ToString(-3, 2);
str = str.Substring(Math.Max(str.Length - 8, 0)).PadLeft(8, '0');

もちろん、16 ビット表現が必要な場合は、単純に整数を a にキャストしてオーバーロードshortを使用できます。Convert.ToString(short, int)

string str = Convert.ToString((short)-3, 2).PadLeft(16, '0');
于 2012-12-11T10:02:52.513 に答える
1
var str = Convert.ToString(-3, 2)
于 2012-12-11T09:58:31.250 に答える