这个语句执行之后,s2里面是以字符方式存储的十六进制显示,而不是十渣者巧六进制数据。
memcpy(s2,&i,sizeof(int))
这样 *** 作之后嫌胡,s2里面保存的才是各个16进制数据,但需要注意的是,顺序如键是反的。
以400这个数为例,s[0]==0x90 [1]==0x01 其它两位是0
首先要明白,在机器内部,任何数据都是二进制存储的,别的进制都是显示问题32位也就是4字节,int类型就是4字节
int x=0x89abcdef //就是一个16进腔凯樱制的数 0x 是16进制的标志
int y=2309737967//此行定义的是一个十进制的数据 但是 x与y是相等的
若要将一个数字输出为16进制的样子,使用孙拿 %x 或%X 输出即可,例如
printf("x is:%x y is:%X"伍丛,x,y)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)