十六进制给字符数组或字符串指针赋值

yangyunzhao 2009-05-07 10:55:15
代码如下

typedef unsigned char ubyte;

ubyte* buffer=NULL;

buffer = new ubyte[3];
buffer[0] = 0xa1;buffer[1] = 0xb2;buffer[2] = 0xc3;//我目前是这样赋值的
//有没有办法可以类似 buffer = 0xa1b2c3;或者buffer = new ubyte[3]{0xa1,0xb2,0xc3};的方式赋值。
//因为我要放在for循环里面,随机给buffer开辟空间,赋值。

...全文
1051 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱码士石头 2012-05-18
  • 打赏
  • 举报
回复
char b_float [4] ={'\x9E','\x72','\x9F','\x40'};
  • 打赏
  • 举报
回复
直接memcpy咯。

纯指针操作就是了。
baiwei156 2009-05-07
  • 打赏
  • 举报
回复

typedef unsigned char ubyte;

union buff
{
int a;
ubyte buffer[4];
};

int main(int argc, char **argv)
{

buff buff1;
buff1.a=0xa1b2c3;
printf("%c\n",buff1.buffer[1]);
printf("%c\n",buff1.buffer[2]);
printf("%c\n",buff1.buffer[3]);
system("pause");
return 0;
}

o0MyBelieve0o 2009-05-07
  • 打赏
  • 举报
回复
帮顶
mengde007 2009-05-07
  • 打赏
  • 举报
回复
木有见过;
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yangyunzhao 的回复:]
哎,我的意思是比如我建立一个unsigned char[256] b
然后如何将0x00 到0xFF 依次插入到b里面去呢?
[/Quote]

要么自己写for,把规律写出来,赋值。

要么0x00010203.......ff,一次写完它赋值,你觉得呢。

for(i=0;i<255;i++)
char[i]=i; //这样不很好吗?你想干嘛?
yangyunzhao 2009-05-07
  • 打赏
  • 举报
回复
哎,我的意思是比如我建立一个unsigned char[256] b
然后如何将0x00 到0xFF 依次插入到b里面去呢?
xempo 2009-05-07
  • 打赏
  • 举报
回复
楼主要求的是效率,效率问题!有前途。
datacodebugs 2009-05-07
  • 打赏
  • 举报
回复
memcpy(dst, src, len)
yangyunzhao 2009-05-07
  • 打赏
  • 举报
回复
换个问法,我需要把对方传给我的一串指定长度的二进制数据,赋值到我的字符数组里面。
yangyunzhao 2009-05-07
  • 打赏
  • 举报
回复
具体点呢?谢谢
野男孩 2009-05-07
  • 打赏
  • 举报
回复
memcpy

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧