如何从字面上将字符串值转换为字节值?

时间:2019-02-02 01:43:57

标签: c# string type-conversion byte

我有一个字符串列表,其值如下:

example[0] = "0xFF";
example[1] = "0xA8";

我想做的就是将这些值设置为字节值,例如:

byte x = Convert.ToByte(example[0]);
byte y = Convert.ToByte(example[1]);

那么,我该怎么办?

注意:我确实需要字节变量包含“ 0xFF”作为其值,例如...

1 个答案:

答案 0 :(得分:3)

只需在适当的 Base 中使用ToByteToByte将同时转换值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

Full Demo Here


其他资源

ToByte(String, Int32)

  

将数字以指定基数的字符串表示形式转换为   等效的8位无符号整数。