C++中怎样把十六进制数据赋到字符串的内存?

 我来答
kaixingui2012
推荐于2017-12-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6418万
展开全部

16进制数据仅是整数的一种表现形式,把十六进制数据赋到字符串的内存,就是把一个整数写到内存地址中,可采用的最简单的办法就是用memcpy()函数。

相关头文件:

#include <string.h>

函数原型:

void * memcpy( void *dest, void * src, size_t len );

dest:目标地址

src:数据源所在地址

len:拷贝的数据长度

功能:从数据源所在地址src开始,拷贝len个字节到dest地址中。

参考代码:

#include <stdio.h>
#include <string.h>
void main()
{
    int n=0x12345678 ;
    char str[10];
    memcpy( str, &n, sizeof(int) );
    for( int i=0;i<sizeof(int);i++ ) //输出显示n在内存中的存储情况,因机器不同,显示有可能不同(大小端机)
        printf("%x\n", str[i]&0xff );
}

运行结果:

小端机:

78

56

34

12

大端机:

12

34

56

78

毒爱流星
2012-06-07 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:115万
展开全部
16进制数据?直接变量赋值
16进制的形式在字符串中显示?转换再赋值
追问
直接变量赋值要怎么做?
追答
一楼的memcpy就可以
memcpy(目标数据区,源数据区,复制数据的长度);
memcpy(str_buf,src_data,nLength);
你看看这个:char str_buf[10]={0x43,0x2B,0x2B,0x00};
执行后,str_buf是"C++“
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静静的猴子
2012-06-02
知道答主
回答量:31
采纳率:0%
帮助的人:10.4万
展开全部
unsigned long data = 0x12345678;
char buf[16];
sprintf(buf, "%#x", data);
std::string str;
str.append(buf); 或者 str.Format(...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
snoopylie
2012-06-01 · TA获得超过1275个赞
知道小有建树答主
回答量:2396
采纳率:33%
帮助的人:824万
展开全部
memcpy
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式