计算机内存结构 —— 位、字节和字位 我们都知道,计算机存储数值都以信息的基本单元的组合进行存储,这个基本单元便是位(bit),我们通常用 0 和 1 来表示位的两种状态。 为什么使用 0 和 1 而不是 0、1、2、3、4、5 或者 6、7、8、9、10 等等这样的数字组合呢? 我们可以想象这样一种实际情况:我们的计算机归根结底是一些硬件在进行处理和计算,硬件是需要电流起作用的,电流可以产生高电压和低电压,在数字电路中,通常将高电压视为 1 ,低电压视为 0 ,因此我们信息存储的最终形式是一连串 1 和 0 的组合。这种表达形式与我们在逻辑中经常使用 true 和 false 是类似的。 关于计算机为什么能够读懂 1 和 0,在这个问题下面有很多非常详细的回答可以作为参考: 也许上面这个例子还是比较抽象,那么我们还可以想象这样一种更古老的实际情况:早期的计算机还不具备处理高级语言的能力,程序员们只能将要写的程序和要处理的数据变成一条条纸带交给计算机去处理。而纸带上某个特定位置的状态是有限的,人们通过在纸带上打洞还是不打洞来表示 1 和 0 。因此数据通过一连串打洞和不打洞的序列进行表示,即很多 1 和 0 的序列,这种数据表示的思想也一直延续到现在。 字节 通过上面的讲解我们也能看到,一个位能表达的信息太少了,因此我们通常将单个的位连接组合起来,组成更大的存储单元,我们称这种最小组合单元为一个字节(byte),一个字节由 8 个位构成,它足以用来存储一个 char 类型的数据。 字 随着存储需求的日益增长,在现在大多数计算机中,字节被组合成更大的存储单位,我们称为字(word),一个字足以存储一个 int 类型的数据。现在的大多数计算机要么使用四字节的字,要么使用八字节的字。我们通常所说的 32 位机器或者 64 位机器其实就是指计算机处理器一次能处理的数据大小,32 位即 4 个字节,64 位即 8 个字节。 结论:一个字等于多少个字节,与系统硬件(总线、cpu命令字位数等)有关,不应该毫无前提地说一个字等于多少位。 正确的说法: ①:1字节(byte) = 8位(bit) ②:在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit) 在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit) 在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)
|