数据的存储和排列

数据的存储和排列

数据的“大端方式”和“小端方式”存储

存储数据时,从数据的地位到高位可以从左到右排列,也可以从右到左排列。无法用最左或者最右来表征数据的最高位和最低位,通常用最低有效字节(LSB)表示最低位、最高有效字节(MSB)表示最高位
e.g.在32位计算机中,一个int型变量i的机器数为01 23 45 67H,最高有效字节MSB=01H,最低有效字节LSB=67H
现代计算机基本上都采用字节编址,即每个地址编号中都存放一个字节。不同类型的数据占用的字节数不同,int 和 float 型数据占4个字节,double 型数据占8个字节等,而程序中对每个数只给定一个地址
假设变量i的地址为80 00H,字节01H、23H、45H、67H应各有一个内存地址。多字节数据在内存中一定是占连续的几个字节。地址80 00H对应4个字节中的哪个字节的地址?字节排序问题

大端方式

大端方式:从最高有效字节(MSB)到最低有效字节(LSB)的顺序存储。最高有效字节在前

0800H 0801H 0802H 0803H
01H 23H 45H 67H

MSB为01H便于人阅读

小端方式

小端方式:从最低有效字节(LSB)到最高有效字节(MSB)的顺序存储。最低有效字节在前

0800H 0801H 0802H 0803H
67H 45H 23H 01H

LSB为67H便于机器处理

边界对齐

现代计算机基本上都采用字节编址,即每个地址编号中都存放一个字节。但也支持字节、半字和字寻址
e.g.存储字长为32位。一个字=32bit,半个字=16bit。每次存访只能读/写一个字。数据的存储和排列

  • 边界对齐
    访问一个字/半个字都只需一次访存
    空间换时间的思想,也就是降低主存空间的实际利用率来换取存储的高效率

  • 边界不对齐
    访问一个字/半个字可能需要两次访存

上一篇:js批量添加数组,2个数组合并


下一篇:如何查看linux版本号等信息