我收到的值为“ 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/

10-11 23:40