请问memcpy(buf,"\x02\x03\x01\x00\x01",5)是什么意思??

ycxw 2004-08-26 07:20:52
unsigned char buf[128];
FILE *f;
memcpy(buf,"\x30\x81\x89\x02\x81\x81\x00",7);

f=fopen("root.dat","wb");
fwrite(buf,1,7,f);
memcpy(buf,"\x02\x03\x01\x00\x01",5);
fwrite(buf,1,5,f);
fclose(f);

往buf里面copy的是什么字符,这是什么编码方式啊!多谢了!
...全文
1979 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhousqy 2005-04-27
  • 打赏
  • 举报
回复
\xhh,表示的是二位十六进制的数
hanjk 2005-04-27
  • 打赏
  • 举报
回复
天书,呵呵
wodeyouxian 2005-04-27
  • 打赏
  • 举报
回复
memcpy(buf,"\x30\x81\x89\x02\x81\x81\x00",7);


=================================================

\xhh,表示的是二位十六进制的数,如\x30 表示的就是0
后面的可以依些类推,

memcpy 就是将中间那个怪怪的字符串中拷7个字符到buf中去

  • 打赏
  • 举报
回复
但是上述\x30\x81\x89\x02\x81\x81\x00是什么东西啊,
它只能是开发者自己定义的一些字符,不一定是ascii码,如中文码,unicode编码等,如一个中文"颗"就是"\xbf\xc5"
FrankZhang123 2004-08-27
  • 打赏
  • 举报
回复
f=fopen("root.dat","wb");
从这里就可以看出来,根本写的就不是文本,是二进制的东西,具体怎么解释,就要看程序里面怎么用的了,反正不是人看得懂的字
ycxw 2004-08-27
  • 打赏
  • 举报
回复
怎么没有人回答啊??
ycxw 2004-08-26
  • 打赏
  • 举报
回复
但是上述\x30\x81\x89\x02\x81\x81\x00是什么东西啊,他们的ASCII表示的东西都很特殊啊?

新手,请别见笑!谢谢了!
whyglinux 2004-08-26
  • 打赏
  • 举报
回复
这是用转义字符形式表示字符的方式:

\0x 或者 \x 开头是指用十六进制表示字符的ASCII码值
\ 后面跟数字是用八进制表示字符的ASCII码值

例如:对于字符 'A',可表示为 '\0x41'、'\x41' 或 '\101'

上述形式的字符连接在一起就成了一个字符串。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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