【问题标题】:C# How to Format a Number to a Hexicadecimal with a Prefix '0x'C#如何使用前缀'0x'将数字格式化为十六进制
【发布时间】:2011-04-30 01:34:20
【问题描述】:

如何将数字格式化为带有前缀“0x”的十六进制?

如:

int space = 32;
MessageBox.Show(space.ToString("'0x'X4")); // Output 0xX4 instead of 0x0020

我点击了这个链接: 自定义数字格式字符串 http://msdn.microsoft.com/en-us/library/0c899ak8.aspx 文字字符串定界符:表示应将包含的字符原封不动地复制到结果字符串中。 但它不适用于“X4”(它适用于“#”),有点奇怪。

我在 DataGridView.DefaultCellStyle.Format 中使用它,所以我不能使用:

"0x{0:X4}", space

谢谢。 彼得

【问题讨论】:

  • 正如我所说,我在 DataGridView.DefaultCellStyle.Format 中使用它,所以我不能使用它。
  • 那你可以使用自定义格式吗? msdn.microsoft.com/en-us/library/z1cc356h.aspx
  • 很遗憾,“标准”格式字符串(“X4”)是“自定义”格式字符串(“0000”)的替代,因此您不能混合使用他们。
  • 这是stackoverflow.com/questions/2715710/… 的副本(他们有一个可行的解决方案)。
  • 嗨,Gabe,我认为你是对的。这就是为什么 '#' 有效,但 'X' 无效,这有点糟糕 :-) 谢谢

标签: c# format hex


【解决方案1】:
int space = 32;
MessageBox.Show("0x"+space.ToString("X"));

如果要输出0x0020:

MessageBox.Show("0x"+space.ToString("X4"));

【讨论】:

    【解决方案2】:
    string.Format("0x{0:x8}", ii);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-09
      • 2016-02-13
      • 1970-01-01
      • 2016-03-15
      • 2020-07-23
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多