//reverse_bytes - turn a BigEndian byte array into a LittleEndian integer
//大端存储转小端存储,举例0x 00 00 00 09,p[0]=0x00、p[1]=0x00、p[2]=0x00、p[3]=0x09
//假设c为4
//这个代码就是把总结果换算出来
//*(p + i) p[0]的值,左移3*8- 8*0=24位
//p[1]的值,左移2*8位
//p[2]的值,左移8*1位
//p[3]的值,不左移
typedef unsigned int uint;
typedef unsigned char byte;
uint reverse_bytes(byte* p, char c) {
int r = 0;
int i;
for (i = 0; i < c; i++)
r |= (*(p + i) << (((c - 1) * 8) - 8 * i));
return r;
}
[Thinking in C] 大端转小端算法
最新推荐文章于 2024-12-30 11:33:56 发布
本文详细介绍了如何将大端存储格式的数据转换为小端存储格式,通过具体实例解析了转换过程。代码示例使用C语言实现,展示了如何逐字节读取并重新组织数据以实现端序转换。
1609

被折叠的 条评论
为什么被折叠?



