我正在努力找出这里发生了什么。这是我的示例代码:
byte testByte = 0;
string testString = "10011110";
int temp = Int32.Parse(testString);
Console.WriteLine(temp); // 10011110
testByte = (byte) temp;
Console.WriteLine(testByte); // 230, why not 158 and how to get it 158?
string result = Convert.ToString(testByte, 2);
Console.WriteLine(result); // 11100110 and not the original 10011110
以下是上面代码的小提琴:https://dotnetfiddle.net/pZUkUO
网络中的二进制/十进制转换器将原始10011110转换为158,在toString(testByte,2)转换后,原始则变为原始10011110。为什么Int32.Parse会将“ 10011110”转换为230?我应该如何转换以使结果与开始时相同?我也希望获得一些参考资料,以便我可以学习和了解更多有关此的内容。谢谢!