将十六进制字符串转换为数字类型并返回
本文关键字:类型 返回 数字 十六进制 字符串 转换 | 更新日期: 2023-09-27 18:09:16
我需要一个函数将十六进制值的格式0xFFFF
(2字节)转换为十进制(无符号和有符号)。
例如:
0xFFFE
是65534
(unsigned)0xFFFE
is -2
(signed)
我也需要同样的东西4字节和1字节。
所有这些选项(3 * 2选项)我需要转换回来-从十进制到十六进制(共12个选项)。
我的函数应该是这样的:
string Myconverter(int ByteSize, bool IsFromHextoDecimal, bool IsSigned)
{
...
}
如果有执行这些转换的内置功能,我想要一个参考/链接。
使用Convert
类中的方法将字符串解析为数字。要解析无符号的2字节值,您可以使用ToUInt16
方法,并指定基数16:
ushort value = Convert.ToUInt16("0xFFFF", 16);
对其他格式使用这些方法:
ToInt16 = signed 2 byte
ToUInt32 = unsigned 4 byte
ToInt32 = signed 4 byte
ToByte = unsigned 1 byte
ToSByte = signed 1 byte
要将数字格式化为十六进制字符串,您可以使用X
格式(或x
以获得小写字母)并指定位数:
string formatted = value.ToString("X4");
但是它没有0x
前缀,所以如果你想要,你必须添加它:
string formatted = "0x" + value.ToString("X4");