16进制字符串转换为字节
最近在项目中遇到一个小问题,记录下来以备后用。
语句:
string str1="2A";
byte b1 = Convert.ToByte(strMd51);
错误信息:
输入字符串的格式不正确。
解决方式:
byte b1 = Convert.ToByte(strMd51,16);
函数解释:
//
// 摘要:
// 将指定基数的数字的 System.String 表示形式转换为等效的 8 位无符号整数。
//
// 参数:
// value:
// 包含数字的 System.String。
//
// fromBase:
// value 中数字的基数,它必须是 2、8、10 或 16。
//
// 返回结果:
// 等效于 value 中的数字的 8 位无符号整数。- 或 - 如果 value 为 null,则为零。
//
// 异常:
// System.ArgumentException:
// fromBase 不是 2、8、10 或 16。- 或 -value,它表示一个非 10 为基的无符号数,前面带一个负号。
//
// System.FormatException:
// value 包含的一个字符不是 fromBase 指定的基中的有效数字。如果 value 中的第一个字符无效,异常消息则指示没有可转换的数字;否则,该消息将指示
// value 包含无效的尾随字符。
//
// System.OverflowException:
// value,它表示一个 10 为基的无符号数,前面带一个负号。- 或 -返回值小于 System.Byte.MinValue 或大于 System.Byte.MaxValue。
public static byte ToByte(string value, int fromBase);