将值转换为十六进制和十进制

Pla*_*Pro -1 c#

我有这个值10732我把这个值转换成'hexadecimal`就像这样:

string hex = string.Join(string.Empty, "10732".Select(c => ((int)c).ToString("X")));
Run Code Online (Sandbox Code Playgroud)

结果我得到了: 3130373332

但是,在"程序员"模式下使用W7的计算器.当我10732从DECIMAL 转换为HEX时,
我得到了29EC结果.为什么?我怎么能用C#做到这一点?

Ode*_*ded 6

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

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

你应该直接转换int:

10732.ToString("X")
Run Code Online (Sandbox Code Playgroud)

如果值是字符串,则首先转换为整数:

Int.Parse("10732").ToString("X")
Run Code Online (Sandbox Code Playgroud)

  • +1对于OPs清晰度字符串 - > int - > hex只是`(int.Parse("10732")).ToString("X");` (2认同)