c – 将UINT32值转换为UINT8数组[4]
发布时间:2020-12-16 05:42:10 所属栏目:百科 来源:网络整理
导读:我的问题是,如何将UINT32值转换为UINT8数组[4](C/C++),最好以独立于字节顺序的方式?另外,你如何从UINT8数组[4]中重构UINT32值,以回到你开始的位置? 解决方法 你没有真正地说自己的意思是独立于字节顺序 – 不清楚,因为字节数组必须有一些字节顺序.也就是说
我的问题是,如何将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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |