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