大端、小端模式

您所在的位置:网站首页 matlab查看占用字节 大端、小端模式

大端、小端模式

2024-07-09 11:06| 来源: 网络整理| 查看: 265

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。 问题场景: 今天在windows系统中测试fwrite输出到文件发现程序中变量存储数值使用的是小端模式,即低位地址内存存储了数据的低位数据。

int tmpint = 0x12345678; //打开文件并输出 FILE* fp = fopen("…","wb"); fwrite(&tmpint,4,1,fp); fclose(fp);

输出到文件显示如图(十六进制显示):

00000000h:78 56 34 12 先输出了低位数据,所以windows中变量存储数值使用了小端模式。

int tmpint = 0x12345678; char c = ((char*)&tmpint)[0];

得到结果变量c的值是’x’字符x,即0x78十进制的120,低位地址存储低位数据,为小端模式。 若对32位数据先存储高16位,后存储低16位则需要对数据进行字节转换 先存储高16位,后存储低16位,即: 0x12345678转换为34 12 78 56

void reverse_4(char* p){ char t = p[0]; p[0] = p[2]; p[2] = t; t = p[1]; p[1] = p[3]; p[3] = t; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3