计算存储整数所需的字节数

Calculating required bytes to store an integer

鉴于我们的 RAM 单元有 6 个地址位和 32 位架构,存储一个整数值需要多少字节?答案是4个字节,但我不明白为什么会这样。

谁能帮我理解他们是怎么得到 4 的?

地址位数并不是存储整数的基本因素。 (稍后会详细介绍。)

你需要知道:

  1. 一个整数占多少位
  2. 每个内存存储多少位location/address

鉴于这些,您可以计算出容纳该大小的 int 所需的内存位置数,即

每个整数 32 位/每个内存位置 8 位 = 每个整数 4 个内存位置。

如果机器每个内存地址存储8位,那么就是我们所说的byte addressable,而且它必然需要多个字节来存储任何大于8位的东西。使用多个字节也意味着使用多个地址:最常见的约定是整个多字节对象由它使用的(数字)最低地址引用。因为多字节实体需要多个地址,下一个用于其他目的的可用地址需要超出多字节项目的最后一个字节。

一些机器是字寻址的,这意味着单个内存地址存储超过 8 位,有时是 16 位、18 位或更大。

拥有可以存储指针的整数大小很有用,但在您的情况下,指针只需要 6 位,而在大多数 32 位机器上,指针需要 32 位。