数据的逆序操作(Big-endian<->Little-endian)
来源:互联网 发布:js中的日期格式化 编辑:程序博客网 时间:2024/05/13 06:37
在作数据处理的时候,有时碰到IBM工作站格式的数据,这种数据格式在内存的中存放顺序和IEEE(微机的存储方式)不一样,高字节的数据先存放,低字节的数据押后(Big-endian),而微机格式的数据存放顺序正好相反(Little-endian),为了在微机环境下处理工作站格式的数据,必须先将数据的存放顺序颠倒,为了使代码具有通用性,特地编写了下面的代码来实现两种格式数据的倒序
void ReverseOrder((unsigned char *) DatAddr,int DatNum,int WordLen)
{
//Big-endian <-> Little-endian
//WordLen,每个数据的字节数
//DatNum,数据个数
unsigned char *tmp;
tmp = new unsigned char[WordLen];
for(int i=0;i<DatNum;i++)
{
for(int k=0;k<WordLen;k++)
{
tmp[WordLen-k-1] = DatAddr[i*WordLen+k];
}
for(int k=0;k<WordLen;k++)
{
DatAddr[i*WordLen+k] = tmp[k];
}
}
delete []tmp;
}
调用一次实现数据的倒序,再调用一次恢复数据的原始存储方式。
- 数据的逆序操作(Big-endian<->Little-endian)
- Little endian & Big endian
- big-Endian&little-Endian
- big-Endian&little-Endian
- big-Endian&little-Endian
- little endian && big-endian
- Big endian & Little endian
- big-endian/little-endian
- Big endian Little endian
- Big-endian & Little-endian
- Little-endian & Big-endian
- big endian & little endian
- Big endian Little endian
- Little Endian, Big Endian
- Big endian Little endian
- big endian & little endian
- big-endian&little-endian
- big Endian Little Endian
- PHP获取客户端数据保存到MySQL数据库 出现中文乱码解决方案
- android 界面布局-各个布局的属性介绍
- vim中补全tab和shift+tab方向相反
- 详细解析Java中抽象类和接口的区别
- waitpid()函数
- 数据的逆序操作(Big-endian<->Little-endian)
- 对LR analysis的平均事务响应时间和summary里的时间值的不同的解释
- 学习心得之linux环境篇
- postgres 无法启动解决方法
- linux命令
- myeclipse 8.5 安装 svn 方法
- VBA 数组 巧用
- USACO section 1.5.4 Checker Challenge
- 存储过程及c#调用