16进制数据仅是整数的一种表现形式,把十六进制数据赋到字符串的内存,就是把一个整数写到内存地址中,可采用的最简单的办法就是用memcpy()函数。
相关头文件:
#include
函数原型:
void * memcpy( void *dest, void * src, size_t len );
dest:目标地址
src:数据源所在地址
len:拷贝的数据长度
功能:从数据源所在地址src开始,拷贝len个字节到dest地址中。
参考代码:
#include
#include
void main()
{
int n=0x12345678 ;
char str[10];
memcpy( str, &n, sizeof(int) );
for( int i=0;iprintf("%x\n", str[i]&0xff );
}
运行结果:
小端机:
78
56
34
12
大端机:
12
34
56
78
16进制数据?直接变量赋值
16进制的形式在字符串中显示?转换再赋值
unsigned long data = 0x12345678;
char buf[16];
sprintf(buf, "%#x", data);
std::string str;
str.append(buf); 或者 str.Format(...)
memcpy