<>计算机组成原理-数据存储与边界的关系

存储字长: 计算机存储单元中二进制代码的位数(例如8位,16位,32位,64位)

存储单元: CPU访问存储器的基本单位

来看看下面这张图(一个存储矩阵):

* 每一行都是一个存储单元,这里一共有四行,就是四个存储单元
* 每个存储单元(每行)有四个字节(32位),也就是存储字长是32
* 这个存储矩阵的容量就是4*4=16字节
<>按边界对齐的数据存储

按边界对齐的数据存储也就是按照数据类型大小的整数倍进行地址分配。

<>请记住这样一个规则,一个n字节的数据在内存中,若它的首地址为m,则有:m%n = 0

拿c语言的数据类型来说,以下几种数据类型在内存中的地址为:

long long或者double(8字节):0,8,16,24,··· (能被8整除的地址)
int(4字节):0,4,8,12,··· (能被4整除的地址)
short(2字节):0,2,4,6,··· (能被2整除的地址)
char(1字节):0,1,2,··· (能被1整除的地址,也就是可以存放在内存中的任意位置)

例1:按边界对齐的数据存储条件下,定义几个变量: short k, int i, double j, short x, char y在内存中的存储位置:

(&i表示i的首地址,也就是i的地址)

这种存储方式的特点:

访问变量方便,但是造成的一定的内存浪费。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信