【问题标题】:Converting Hexidecimal Strings to Numeric Types and back将十六进制字符串转换为数字类型并返回
【发布时间】:2013-04-07 08:19:17
【问题描述】:

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

例如:

0xFFFE65534(未签名)
0xFFFE-2(已签名)

对于 4 字节和 1 字节,我也需要同样的东西。

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

我的函数应该是这样的:

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

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

【问题讨论】:

标签: c# hex byte int32


【解决方案1】:

使用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");

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 2014-03-19
    相关资源
    最近更新 更多