//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] 大端转小端算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
程序是怎样跑起来的--二进制基础运算
qq_22796957
2020-07-08 11:40:12
算法复杂度评价指标(大o表示法)
weixin_38324954
2020-07-08 11:06:52
“变位词”判断问题及算法复杂度
weixin_38324954
2020-07-08 11:06:52
python两种内置数据类型(列表list和字典dict)上各个操作的大O数量级
weixin_38324954
2020-07-08 11:06:52
计算机信息的表示(源码、补码、浮点数、图形、声音)
xiaotian15
2020-07-08 01:52:47
ubuntu19 解决无法联网的问题
Number__Zero
2020-07-08 01:05:09
数据结构——树——图解二叉树
谷禾水
2020-07-08 01:01:00
关于计算机中的每个线程为何执行的顺序具有不确定性分析
@浪漫的程序员
2020-07-07 21:25:52
计算机 与 处理器 为何存在较大的差距?
@浪漫的程序员
2020-07-07 21:25:52
剑指offer(Java)
789请问
2020-07-07 16:52:50
ubuntu系统静态路由
Mystery_zu
2020-07-07 14:10:56
编程语言之美,在动、静之态,在强、弱之间,分解释、编译之道
老夫科技说
2020-07-07 11:24:13
模拟电路全系列复习题 恶补知识点
cpu_code
2020-07-07 08:09:56