从字符串转换为十六进制数组

时间:2019-03-30 12:40:43

标签: c#

将char转换为十六进制值时出现问题,当char为数字时,下面的代码可以正常工作,但是当char为后者时,它将抛出异常

  

System.FormatException:'输入字符串的格式不正确

代码:

public byte[,] get_state(string plainText)
{
    char[] cplainText = plainText.ToCharArray();
    byte[,] state = new byte[4, 4];
    plainText = plainText.Remove(0, 2);

    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j+=2)
        {
            string sub = plainText.Substring((i * 4 + j), 2);
            state[i, j] = Convert.ToByte(sub);
        }
    }

    return state;
}

输入字符串为“ 0x3243F6A8885A308D313198A2e0370734”,并且在迭代“ F6”时出现异常

1 个答案:

答案 0 :(得分:0)

Convert.ToByte();

在重载中表示仅接受字符串格式的数字。

您必须考虑是否使用正确的方法,或者事先进行转换。