首页 > 解决方案 > 从字符串转换为十六进制数组

问题描述

将 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”时出现异常

标签: c#

解决方案


Convert.ToByte();

它在重载中说它只接受字符串格式的数字。

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


推荐阅读