64位架构中的数据是如何存储的

问题描述

我有两个问题。

一个问题:

如何使用 int 而不是 long 减少程序中的字节数?据我了解,我们分配变量,即我们占用一个地址,如果我们使用 64 位架构,我们每个内存地址都有 64 位。

第二个问题:

小于64位的数据如何包含在内存地址中?它先占据元素,然后在其他单元格中写入 0?

谢谢

解决方法

大多数 64 位架构仍然是字节寻址架构,即每个地址指 1 个字节。所以使用32位数据而不是64位数据使得它只占用4个地址而不是8个地址,节省了一半的空间。

在作为字寻址架构的 64 位架构上(即每个地址指一个 64 位字),您的第一句话是正确的。使用 32 位变量不会节省内存。至于你的第二个问题,在字寻址架构上处理 32 位数据时,将数据零扩展以适应 64 位是一个常见的选择。