文本框从十六进制到字节
本文关键字:到字节 十六进制 文本 | 更新日期: 2023-09-27 18:25:47
hi我有一些文本框,用户可以在其中输入姓名等信息。我需要将文本框的文本转换为十六进制,然后将十六进制转换为字节,并通过rs232发送到设备。
我知道通过rs232发送的部分。我的问题是,我只能使用textbox.text.ToString("X")
,然后使用以下函数将十六进制转换为字节数组吗?
public static byte[] StringToByteArray(String hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
return bytes;
}
假设ASCII(基于您的注释):
var bytes = textbox.Text
.Select(c => (byte)c) // cast every character to a byte
.ToArray();
当您将chars
视为一组位时,不需要转换为十六进制。
将"john"到"6A6F686E"到字节(仍然觉得将发送的数据翻倍很奇怪…):
var bytes = textbox.Text
.Select(c => (byte)c) // to byte
.SelectMany(b => b.ToString("X")) // to hex
.Select(c => (byte)c) // to "hex-byte"
.ToArray();