如何在 char[4]中存放 32位的 int 型整数?

pottichu 2006-04-08 08:45:59
都是占32位内存,应该怎么转换一下呢?
...全文
318 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
YufengShi 2006-04-09
  • 打赏
  • 举报
回复
用位运算或除法操作拆解一个整型得到各个字节部分,
再把整型的各个字节部分复制到char数组里.
不要使用指针方式操作,那样的话你就依赖于整型的存储方式了.
snowfling 2006-04-09
  • 打赏
  • 举报
回复
用不着考虑这么多吧!估计楼主也是在PC机上写程序。
MSDN3000 2006-04-09
  • 打赏
  • 举报
回复
INT32 iTestA=0x12345678
CHAR cTestB[4];

cTestB[0]=(iTestA>> 0)&0xFF;
cTestB[1]=(iTestA>> 8)&0xFF;
cTestB[2]=(iTestA>>16)&0xFF;
cTestB[3]=(iTestA>>24)&0xFF;
蒋晟 2006-04-09
  • 打赏
  • 举报
回复
没法转换,因为不知道整数是否使用big-endian存储方式
一条晚起的虫 2006-04-09
  • 打赏
  • 举报
回复
没说要存成什么格式阿?
方法多了
syy64 2006-04-09
  • 打赏
  • 举报
回复
楼主没讲清楚,虽说都是四个字节,但存储方式不一样。
AthlonxpX86 2006-04-09
  • 打赏
  • 举报
回复
union Buf
{
char arry[4];
int a;
}
femalelover 2006-04-09
  • 打赏
  • 举报
回复
char arry[4];
int a=10 ;
memcpy(arry,&a,sizeof a);
cout<<*(int*)arry<<endl; //得到10. 说明上面复制到数组确实没问题.
以前没想过这个问题,特地MARK,又简单又有意思.
DentistryDoctor 2006-04-08
  • 打赏
  • 举报
回复
memcpy(charArray,&i,sizeof(i));
cnwolf 2006-04-08
  • 打赏
  • 举报
回复
char a[4];
int *b;
int c;
c = 0x12345678;

b = (int *)a;
*b = c;

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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