将字符串“0x32”转换为单个字节

时间:2010-08-19 18:50:33

标签: c#

我正在使用C#尝试将字符串值转换为字节。似乎比我预期的更难。基本上我有一个名为hex =“0x32”的字符串,需要字节块来等于这个值。

string hex = "0x32";
byte block = Convert.ToByte(hex);

以上不起作用,是否有人知道如何将十六进制值成功分配给字节。我需要在代码中稍后将此字节附加到字节数组中。

3 个答案:

答案 0 :(得分:4)

尝试以下

byte block = Byte.Parse(hex.SubString(2), NumberStyles.HexNumber);

SubString调用的原因是从字符串中删除前面的“0x”。即使指定了NumberStyles.HexNumber,Parse函数也不会指望“0x”前缀,如果遇到则会出错

答案 1 :(得分:2)

Convert.ToByte(hex, 16)

答案 2 :(得分:1)

    string hex = "0x32";
    int value = Convert.ToInt32(hex, 16);
    byte byteVal = Convert.ToByte(value);

会工作......

修改

一些代码来证明0x32(十六进制)和50(整数)是相同的。

    string hex = "0x32";
    byte[] byteVal = new byte[1];
    byteVal[0] = Convert.Byte(hex, 16);
    Console.WriteLine(byteVal[0] + " - Integer value");
    Console.WriteLine(BitConverter.ToString(byteVal) + " - BitArray representation");;