【问题标题】:Converting a value to Hexadecimal and Decimal [duplicate]将值转换为十六进制和十进制 [重复]
【发布时间】:2013-06-16 00:04:33
【问题描述】:

我有这个值10732 我把这个值转换为‘十六进制’,如下所示:

string hex = string.Join(string.Empty, "10732".Select(c => ((int)c).ToString("X")));

我得到了结果:3130373332

但是,在“程序员”模式下使用 W7 的计算器。当我将 10732从 DECIMAL 转换为 HEX 时,
结果我得到了29EC。为什么 ?我如何使用 C# 来做到这一点?

【问题讨论】:

  • 将字符串和整数转换为十六进制之间存在很大差异。 c# 是为字符串做的,计算器是为 int 做的。你要哪一个?
  • 您正在逐个转换。这不是您将 int 转换为 hex 的方式
  • @C4stor 那么我所做的是将字符串的每个 CHAR 转换为十六进制?我怎样才能得到29EC
  • 查看 Parse 链接的答案。

标签: c#


【解决方案1】:

您正在将字符串中的每个字符转换为十六进制。

Char   Int value (dec)   Hex value
1      49                31
0      48                30
7      55                37
3      51                33
2      50                32

您应该只是直接转换 int:

10732.ToString("X")

如果值是字符串,先转成整数:

Int.Parse("10732").ToString("X")

【讨论】:

  • +1 对于 OPs 清晰度字符串 -> int -> hex 将只是 (int.Parse("10732")).ToString("X");
  • +1 感谢您的解释。
  • Oded,有没有办法使用双打来做到这一点?比如,如果我想获得 R$ 107.32 的 int 值?
  • @PlayHardGoPro - 转换为 int。你会得到107
猜你喜欢
  • 2017-12-30
  • 1970-01-01
  • 2014-02-05
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
相关资源
最近更新 更多