【问题标题】:Convert from unsigned long hex to DWORD [duplicate]从无符号长十六进制转换为 DWORD [重复]
【发布时间】:2014-10-22 08:34:59
【问题描述】:

我需要将unsigned long(十六进制)转换为DWORD

我通常会有

DWORD MyHex = 0x3F0000;

但我却得到了

unsigned long MyLong = 3f0000;

如何将MyLong 转换为MyHex

当我只是在视觉上将它打印到一个文件并执行时很好。

fprintf(pFile, "0x%X\n", MyLong);

但现在我需要将该字符串实际用作DWORD

【问题讨论】:

  • 那么问题是如何将十六进制数字的字符串表示形式转换为DWORDunsigned long MyLong = 3f0000 不会编译,所以不清楚。
  • 我想我们可以将字符串 rep 转换为 dword 因为我可以使用 sprintf 转换为 char[256] 并且我猜是这样的......
  • 好吧,想想你想要什么。
  • 你的unsigned long MyLong = 3f0000; 应该有0x3f0000 我会假设(因为3f0000 在C 中不是一个有效的数字常量)?在这种情况下,MyHexMyLong 已经是相同的值。当您说“转换”时,您的意思不是很清楚。
  • 无论哪种方式都可以让它发挥作用,哈哈。目前,程序要求我在每次编译时手动输入地址 DWORD MyOffset = 0x81231972(每次更改时我都必须输入)我使用另一个程序自动获取新的偏移量,然后使用 fprintf(pFile , "0x%X\n", MyLong);所以在文件中它就像这个 0x2B71CC4 然后我把它手动输入到另一个程序中,这就是为什么我试图避免这样做,它的手动部分。

标签: c++ c


【解决方案1】:

根据文档,DWORD 实际上只是 unsigned long 的 typedef。无需转换。您可以像使用DWORD 一样使用MyLong

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2015-01-11
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多