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”时出现异常
解决方案
Convert.ToByte();
它在重载中说它只接受字符串格式的数字。
您必须考虑是否使用正确的方法,或者事先进行转换。
推荐阅读
- ruby-on-rails - Rails:如何在将链接添加到 trix 时显示 Web 预览
- concurrency - 为什么 DO CONCURRENT 语句会给出奇怪的结果?
- php - $wpdb->update 在引用到数据库之前添加斜杠
- django - Sum 的注释似乎不起作用 Django
- hyperledger-fabric - 获取错误为 ccenv:latest 从 docker hub 删除导致链码实例化问题
- c# - 引用 COM+ 元素时对象与目标类型不匹配
- reactjs - 选择中的antd新图标不可点击
- html - 设备更改时如何使容器响应?
- c# - 我如何使用 ajax 和 asp.net asmx 页面为我的 html 表设置分页
- c - 当用户输入错误的因素时,我想提供错误信息