C++ 从无符号长十六进制转换为DWORD
我需要将C++ 从无符号长十六进制转换为DWORD,c++,c,C++,C,我需要将无符号长(十六进制)转换为DWORD 我通常会 DWORD MyHex = 0x3F0000; 但事实上,我得到的是 unsigned long MyLong = 3f0000; 如何将MyLong转换为MyHex 当我只是直观地把它打印到一个文件中,然后做这些事情时,一切都很好 fprintf(pFile, "0x%X\n", MyLong); 但现在我需要实际使用该字符串作为DWORD根据文档,DWORD实际上只是无符号长的typedef。不需要转换。您可以像使用DWORD一样
无符号长
(十六进制)转换为DWORD
我通常会
DWORD MyHex = 0x3F0000;
但事实上,我得到的是
unsigned long MyLong = 3f0000;
如何将MyLong
转换为MyHex
当我只是直观地把它打印到一个文件中,然后做这些事情时,一切都很好
fprintf(pFile, "0x%X\n", MyLong);
但现在我需要实际使用该字符串作为
DWORD
根据文档,DWORD
实际上只是无符号长的typedef。不需要转换。您可以像使用DWORD一样使用MyLong
,因此问题是如何将十六进制数的字符串表示形式转换为DWORD
unsigned long MyLong=3f0000
无法编译,因此它一点也不清楚。我想我们可以将字符串rep转换为dword,因为我可以使用sprintf将其转换为char[256]并按这种方式进行,我想……我们可以决定您想要什么。您是unsigned long MyLong=3f0000
应该有0x3f0000
我会假设(因为3f0000
在C中不是有效的数值常量)?在这种情况下,MyHex
和MyLong
已经是相同的值。现在还不太清楚你说“convert”是什么意思。不管你用哪种方式都可以。lol。目前程序要求我每次编译DWORD MyOffset=0x81231972时手动键入地址(每次更改时我都必须键入此地址)我使用另一个程序自动获取新的偏移量,并使用fprintf(pFile,“0x%X\n”,MyLong)将其打印到一个文件中;所以在这个文件中,它是0x2B71CC4,然后我把它手动输入到另一个程序中,这就是为什么我试图避免这样做,手动部分。