跳转至

数据的存储和排列

大小端模式

  • 大端模式: 先存放最高有效字节,表现为最高有效字节存储在低地址
  • 小端模式: 先存放最低有效字节,表现为最低有效字节存储在低地址

小端模式便于机器处理

边界对齐

现代计算机通常是按字节编址,即每个字节对应1个地址

通常也支持按字,半字,按字节寻址。

假设存储字长为32位,则一个字=32bit,半字=16bit

计算机每次访存只能读/写一个字


假设一个C语言的结构体里有3个char类型的字符,一个short类型的整数,在存储方面,3个char类型的字符占用3个连续的字节,

假设没有边界对齐的话,一个short类型的整数则要分别存储在两个半字里,如下表:

边界未对齐的方式
char1 char2 char3 short1-1
short1-2 填充 填充 填充

如果要访问short1这个整数,则需要访问两次内存,因为计算机访存每次只能读一个字。

如果采用边界对齐的方式进行存储,则只需要访存一次。

采用边界对齐的方式
char1 char2 char3 填充
short1 填充 填充

用空间换时间。

冀ICP备17031746号-6