关于C#:convert.tobyte找不到任何可识别的数字

Convert.ToByte Could not find any recognizable digits

本问题已经有最佳答案,请猛点这里访问。

我需要以某种方式将"xxx"转换为byte,但我得到了异常

An unhandled exception of type 'System.FormatException' occurred in
mscorlib.dll

Additional information: Could not find any recognizable digits.

是否可以将"xxx"值转换为字节?

1
 byte tr  = (byte)(Convert.ToByte("xxx", 16) << 4);


这一行(Convert.ToByte("xxx", 16) << 4)将返回integer,解析到byte时不能转换为字符串,这就是它抛出System.FormatException的原因。

但是已经有了一个很好的例子来说明如何将字符串转换为byte[]。

1
2
3
4
5
6
static byte[] GetBytes(string str)
{
    byte[] bytes = new byte[str.Length * sizeof(char)];
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
    return bytes;
}

示例来源


如果需要将字符串更改为字节数组:

1
 byte[] toBytes = Encoding.ASCII.GetBytes("xxx");


无法将"xxx"转换为字节。它只是不是任何字节的表示。