我正在使用C#处理一个将字符串值转换为字节的问题。这似乎比我预期的要困难。基本上,我有一个名为hex的字符串,其值为"0x32",需要将字节块等于该值。
string hex = "0x32";
byte block = Convert.ToByte(hex);
上述方法无效,有人知道如何成功地将十六进制值赋给字节吗?我需要在代码后面将此字节附加到字节数组中。
我正在使用C#处理一个将字符串值转换为字节的问题。这似乎比我预期的要困难。基本上,我有一个名为hex的字符串,其值为"0x32",需要将字节块等于该值。
string hex = "0x32";
byte block = Convert.ToByte(hex);
byte block = Byte.Parse(hex.SubString(2), NumberStyles.HexNumber);
< p > 这里使用 SubString
函数是为了去除字符串前面的 "0x" 。即使指定了 NumberStyles.HexNumber
,Parse
函数也不会接受 "0x" 前缀,如果遇到这个前缀将会出错。
Convert.ToByte(hex, 16)
byteval = 0x32
和 byteval = 50
是一样的。 - Bob 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");;