C/C++ 大小端理解及转换
来源:互联网 发布:tftp 指定端口号 编辑:程序博客网 时间:2024/05/17 09:17
在开发过程中,遇到了大小端的问题,我们用的X86结构是小端模式,KeilC51为大端模式,ARM和DSP很多为小端模式,
引用百度百科的大小端解释:
大端模式(Big-endian),是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
在此先推出一个测试网站:http://tool.oschina.net/hexconvert/
之后介绍一个byte转int的C/C++ 源码
小端模式//byte转int long int bytes4ToInt(byte* bytes){long int addr = bytes[0] & 0xFF;addr |= (bytes[1] << 8 & 0xFF00);addr |= ((bytes[2] << 16) & 0xFF0000);addr |= ((bytes[3] << 24) & 0xFF000000);return addr;}
大端模式
//byte转int long int bytes4ToInt(byte* bytes){long int addr = bytes[3] & 0xFF;addr |= (bytes[2] << 8 & 0xFF00);addr |= ((bytes[1] << 16) & 0xFF0000);addr |= ((bytes[0] << 24) & 0xFF000000);return addr;}
阅读全文
0 0
- C/C++ 大小端理解及转换
- C++->大小端转换
- C语言:大小端转换
- C语言面试题——位域及大小端模式的理解
- C笔试题(判断大端小端模式及大小端模式转换)
- C笔试题(判断大端小端模式及大小端模式转换)
- 玩儿转C语言:bit 位域大小端转换及传输
- C-内存地址对齐及大小端
- C语言中union与大小端模式的理解
- 写一个C宏,实现大小端之间的转换
- [c/c++ ]字节序与大小端转换
- SP5000系列烧录器大小端转换C语言实现
- C语言二进制文件读写以及大小端转换
- c/c++ int,float,short 大小端转换函数
- 深入理解C语言-----各数据类型大小
- 深入理解C语言-----各数据类型大小
- C语言大小端
- C语言大小端
- log4net使用总结
- mono中文注释乱码
- 分布式任务调度框架技术调研
- [thinkPHP5项目实战_11]栏目修改
- C语言指针的实例体验
- C/C++ 大小端理解及转换
- hibernate sum求和(hql和sql)
- 使用Json的两种方式
- Oracle报错,ORA-28001: 口令已经失效
- poj 2104 K-th Number
- python简明教程里关于zip的一点解决办法
- 面向对象中的构造函数
- [Android6.0][RK3399] PWM Backlight 驱动分析
- Java中局部变量与成员变量(全局变量的区别)