2

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

例如:

0xFFFE65534 (无符号)
0xFFFE-2 (有符号)

对于4 Bytes 和 1 Byte我也需要同样的东西。

所有这些选项(3 * 2 个选项)我需要转换回来 - 从十进制到十六进制(总共 12 个选项)。

我的功能应该是这样的:

    string Myconverter(int ByteSize, bool IsFromHextoDecimal, bool IsSigned)
    {
        ...
    }

如果有执行这些转换的内置功能,我想要一个参考/链接。

4

1 回答 1

3

使用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");
于 2013-04-15T09:16:44.557 回答