【问题标题】:int to hex stringint 到十六进制字符串
【发布时间】:2011-01-14 11:20:10
【问题描述】:

我需要将 int 转换为十六进制字符串。

当使用ToString("X")ToString("X2") 转换1400 => 578 时,但我需要像0578 一样。

谁能提供IFormatter 以确保字符串长度为 4 个字符?

【问题讨论】:

  • 查看数字格式here

标签: c#


【解决方案1】:

使用ToString("X4")

4 表示字符串长度为 4 位。

参考:The Hexadecimal ("X") Format Specifier on MSDN

【讨论】:

  • 对负数不好,用'short'类型代替'int'
  • 要打印 int32,它应该只使用“X8”,而不是“X4”。如果你想要 X4,你确实应该确保使用 Int16。
【解决方案2】:

尝试以下方法:

ToString("X4")

请参阅 MSDN 上的 X format specifier

【讨论】:

    【解决方案3】:

    试试 C# 6 中引入的C# string interpolation

    var id = 100;
    var hexid = $"0x{id:X}";
    

    十六进制值:

    "0x64"
    

    【讨论】:

    • 太棒了!我会加$"0x{id:X4}";
    【解决方案4】:

    上一个答案不适用于负数。使用短类型而不是 int

            short iValue = -1400;
            string sResult = iValue.ToString("X2");
            Console.WriteLine("Value={0} Result={1}", iValue, sResult);
    

    现在结果是 FA88

    【讨论】:

      【解决方案5】:

      将int转换为十六进制字符串

      int num = 1366;
      

      字符串 bcdNum = num.ToString("X");

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 2013-02-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-04
        • 2019-11-16
        • 2014-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多