将十六进制字符串转换为数字类型并返回

本文关键字:类型 返回 数字 十六进制 字符串 转换 | 更新日期: 2023-09-27 18:09:16

我需要一个函数将十六进制值的格式0xFFFF(2字节)转换为十进制(无符号和有符号)。

例如:

0xFFFE65534 (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");