0

我有一个用 Delphi 编写的程序将 11 转换为0xB和 28 转换为0x1c。我尝试使用以下方法在 c# 中转换 11(十进制到十六进制):-

var deciValue01 = 11;
var deciValue02 = 28;
var deciValue03 = 13;
System.Diagnostics.Debug.WriteLine(string.Format("11 = {0:x}", deciValue01));
System.Diagnostics.Debug.WriteLine(string.Format("28 = {0:x}", deciValue02));
System.Diagnostics.Debug.WriteLine(string.Format("13 = {0:x}", deciValue03));

但我得到的结果是: -

  • 11 = 乙
  • 28 = 1c
  • 13 = d

想知道如何将 11 转换为 '0xB' 和 28 转换为 '0x1c' 和 13 转换为 '0xD'?我不需要从十进制更改为十六进制吗?

4

3 回答 3

2

您只需要使用X将其设为大写十六进制数字而不是小写,然后添加您0x自己:

// Add using System.Diagnostics; at the top of the file... no need to
// explicitly qualify all your type names
Debug.WriteLine(string.Format("11 = 0x{0:X}", deciValue01));
Debug.WriteLine(string.Format("28 = 0x{0:X}", deciValue02));
Debug.WriteLine(string.Format("13 = 0x{0:X}", deciValue03));

请注意,这些deciValue01值本身既不是“十进制”也不是“十六进制”。它们只是数字。“十进制”或“十六进制”的概念仅在您谈论文本表示时才有意义,至少对于整数而言。(这对浮点很重要,其中可表示类型的集合取决于所使用的基数。)

于 2013-04-12T18:04:30.397 回答
1

尝试这个

int value = Convert.ToInt32(/*"HexValue"*/);
String hexRepresentation = Convert.ToString(value, 16);
于 2016-09-02T05:00:23.837 回答
0

听起来你想要这个...

var deciValue01 = 11;
var deciValue02 = 28;
var deciValue03 = 13;
System.Diagnostics.Debug.WriteLine(string.Format("11 = 0x{0:x}", deciValue01));
System.Diagnostics.Debug.WriteLine(string.Format("28 = 0x{0:x}", deciValue02));
System.Diagnostics.Debug.WriteLine(string.Format("13 = 0x{0:x}", deciValue03));
于 2013-04-12T18:06:17.560 回答