大端、小端模式 |
您所在的位置:网站首页 › matlab查看占用字节 › 大端、小端模式 |
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。 问题场景: 今天在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 |