我收到的值为“ 7”。在下面使用我的代码。我得到“ 111”,但我需要的是“ 0000111”,如果收到“ 255”,我将得到“ 1001010101”,但我需要得到的是“ 11111111”。请在下面查看我的代码:
_dataRx = ((SerialPort) (sender)).ReadLine();
_dataRx = _dataRx.Replace("\r\n", "").Replace("\r", "").Replace("\n", "");
var x = Convert.ToString(Convert.ToInt32(_dataRx, 16), 2);
Console.WriteLine(x);
由于需要将其放置在数组中,因此我总是需要8位数字。
你能帮忙吗?谢谢。
最佳答案
实际上,您想将_dataRx
(例如,"255"
)视为十进制值,而不是十六进制值(如果需要0x255 == 597 == 1001010101 (binary)
,则将其视为十六进制值):
string x = Convert.ToString(int.Parse(_dataRx), 2).PadLeft(8, '0');
关于c# - 在C#中将十六进制值转换为8位字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49066848/