【问题标题】:String to byte converting [duplicate]字符串到字节的转换[重复]
【发布时间】:2012-03-16 08:41:36
【问题描述】:

可能重复:
C# - Covert String of Hex values to Hex

我想从 str= "0x04" 转换为 byte cmd = 0x04; 我怎样才能在cSharp中做到这一点? 我想要的是转换字符串值并将其写入 COM 端口,如下所示:

byte[] val;
val = new byte[16];
byte[] res4 = System.Text.Encoding.Default.GetBytes(str4);
val[0] = 0xFF;
val[1] = 0xFF;
...
val[15] = 0x01;
port.Write(val, 0, 16);

提前致谢!

【问题讨论】:

  • 请注意,重复的问题有错误的答案。 Tsabo 是对的。

标签: c#


【解决方案1】:

要从这样的字符串中获取字节值,您可以使用:

byte b = Byte.Parse(str.Remove(0,2), NumberStyles.HexNumber);

基本上你需要去掉字符串的0x部分,然后指定你正在解析一个十六进制值

【讨论】:

  • 如果字节 b = Byte.Parse(str4.Remove(0,2), NumberStyles.HexNumber); val[0] = 0x04 和 val[0] = b 有什么区别?
【解决方案2】:

试试这个:

int num = System.Convert.ToInt32(str4, 16);
byte[] val = BitConverter.GetBytes(num);

【讨论】:

  • 先将String转换为int;然后 int 到字节数组。
【解决方案3】:

使用 Int32.Parse() 将字符串解析为十六进制数。如果字符串由多个 commands 组成,则必须使用 String.Split() 将其拆分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多