windows application 16进制转换的有关问题
windows application 16进制转换的问题
我用的是 c++Builder 2010
在一个windows application 中需要将一个10进制“DWORD”转换为16进制
用如下方法
还要涉及到unsigned long 和 char的转换
有没有什么更简单的方法呢?谢谢各位前辈
------解决方案--------------------
sscanf需要第一个参数是字符串。
char str[100];
unsigned long a;
sprintf(str,"%ld",a);
sscanf(str,"%x",a);
其实我不明白lz为什么要这么做?得到16进制的形式但是值没变阿。。。
------解决方案--------------------
DWORD a = 0x12345678;
char buffer[32];
sprintf(buffer, "%x", a);
printf("%s\n", buffer);
------解决方案--------------------
BCB2010的话,要想一个dword以16进制显示在MEMO中可直接用
Memo1->Lines->Add(IntToHex(szParam,8));
我用的是 c++Builder 2010
在一个windows application 中需要将一个10进制“DWORD”转换为16进制
用如下方法
- C/C++ code
DWORD szParam; sscanf(szParam,"%x",szParam); 会提示说 E2034 Cannot convert 'unsigned long' to 'const char *' Type mismatch in parameter '__buffer' (wanted 'const char *', got 'unsigned long')
还要涉及到unsigned long 和 char的转换
有没有什么更简单的方法呢?谢谢各位前辈
------解决方案--------------------
sscanf需要第一个参数是字符串。
char str[100];
unsigned long a;
sprintf(str,"%ld",a);
sscanf(str,"%x",a);
其实我不明白lz为什么要这么做?得到16进制的形式但是值没变阿。。。
------解决方案--------------------
DWORD a = 0x12345678;
char buffer[32];
sprintf(buffer, "%x", a);
printf("%s\n", buffer);
------解决方案--------------------
BCB2010的话,要想一个dword以16进制显示在MEMO中可直接用
Memo1->Lines->Add(IntToHex(szParam,8));