我的问题是,如何将UINT32值转换为UINT8数组[4](C/C++),最好以独立于字节顺序的方式?另外,你如何从UINT8数组[4]中重构UINT32值,以回到你开始的位置?
解决方法
你没有真正地说自己的意思是独立于字节顺序 – 不清楚,因为字节数组必须有一些字节顺序.也就是说,以下之一必须满足您的要求:
给定UINT32 v和UINT8 a [4]:
“主机”端
(使用机器的本机字节顺序):
UINT8 *vp = (UINT8 *)&v; a[0] = vp[0]; a[1] = vp[1]; a[2] = vp[2]; a[3] = vp[3];
要么:
memcpy(a,&v,sizeof(v));
要么:
*(UINT32 *)a = v;
大端
(又名“网络订单”):
a[0] = v >> 24; a[1] = v >> 16; a[2] = v >> 8; a[3] = v;
小端
a[0] = v; a[1] = v >> 8; a[2] = v >> 16; a[3] = v >> 24;
原文地址:https://www.jb51.cc/c/113996.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。