我有一个字符串列表,其值如下:
example[0] = "0xFF";
example[1] = "0xA8";
我想做的就是将这些值设置为字节值,例如:
byte x = Convert.ToByte(example[0]);
byte y = Convert.ToByte(example[1]);
那么,我该怎么办?
注意:我确实需要字节变量包含“ 0xFF”作为其值,例如...
答案 0 :(得分:3)
只需在适当的 Base 中使用ToByte
。 ToByte
将同时转换值FF
和文字量0xFF
,因此无需删除0x
var byte = Convert.ToByte(hex, 16)
或
var hexes = new string[] { "0xFF", "0xA8"};
var results = hexes.Select(x => Convert.ToByte(x, 16))
.ToArray();
foreach (var item in results)
Console.WriteLine(item);
输出
255
168
更新
但是有一些方法可以转换那些保留十六进制的字符串 结构体?您知道:
byte x = 0xFF
;
var hexes = new string[] { "0xFF", "0xA8" };
var results = hexes.Select(x => $"byte {Convert.ToByte(x, 16)} = {x}")
.ToArray();
foreach (var item in results)
Console.WriteLine(item);
输出
byte 255 = 0xFF
byte 168 = 0xA8
其他资源
将数字以指定基数的字符串表示形式转换为 等效的8位无符号整数。