【问题标题】:Similar code in C# for a code in C++C# 中的类似代码用于 C++ 中的代码
【发布时间】:2013-05-07 14:09:35
【问题描述】:

有人可以帮我解决这个问题吗?我有这个 C++ 代码,我需要将它转换为 C#。

sprintf(szChkSum,"%03x",nChkSum);

“%03x”是困扰我的地方。这会生成一个 3 位的十六进制数,对吗? 我需要在 C# 中做同样的事情,我该怎么做?

抱歉英语不好。

【问题讨论】:

标签: c# c++ hex


【解决方案1】:
string s = nChkSum.ToString("X3");

【讨论】:

  • 当我运行它时它可以工作——十六进制数字零填充到三个字符。你得到什么输出?你能发布更多上下文吗?
  • 是的,我对 ASCII 值求和,结果是 83641 ,答案是 49b ...我在 C++ 中有这个示例,我必须在 C# 中编写类似的代码。 .
  • 在总和之后,当我得到 83641 值时,我有这两行代码是什么使“魔术”...看到这有帮助... } sprintf(szChkSum,"% 03x",nChkSum); } return _strdup((char*) szChkSum+strlen(szChkSum)-3);
  • 看起来你的 C 返回值只是抓取了三个最低有效的十六进制数字。在 C# 中,您可以在我上面发布的十六进制字符串转换之后调用 s.Substring(s.Length-3)。
  • 是的,是这样的,我会试试这样的,非常非常感谢
【解决方案2】:

在 msdn 上查看 String.Format

你也可以在这里找到很好的例子http://www.dotnetperls.com/string-format

【讨论】:

    【解决方案3】:
    szChkSum = string.Format("{0:x3}", nChkSum);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多