负数转换为二进制形式的字节(8位)

时间:2012-12-11 09:49:30

标签: c#

我试图将负数转换为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

2 个答案:

答案 0 :(得分:4)

如果你想要一个8位表示,你最好的办法就是从Convert.ToString(int, int)得到的32位表示的结果中去除额外的24位,因为没有{{1}的重载}}

Convert.ToString(sbyte, int)

当然,如果你想要一个16位表示,你可以简单地将整数转换为string str = Convert.ToString(-3, 2); str = str.Substring(Math.Max(str.Length - 8, 0)).PadLeft(8, '0'); 以使用Convert.ToString(short, int) 重载:

short

答案 1 :(得分:1)

var str = Convert.ToString(-3, 2)