计算机基础

计算机内存结构 —— 位、字节和字

背景


嘿,你是否曾经好奇过,为什么我们在电脑上看到的文件大小总是以一些奇怪的单位来表示?比如说,你下载了一个电影,大小是2.5GB,或者你的硬盘上还剩下100MB的空间。那这些GB、MB、还有KB到底是啥意思?别担心,我今天就来给你讲解这些奇怪单位的来龙去脉。

首先,让我们从最基础的东西开始——Bit和Byte。Bit(比特)是计算机中最小的数据单位,可以是0或1,就像开关一样,要么是关,要么是开。Byte(字节)呢,就是由8个Bit组成的,你可以把它看作是计算机中的一个字母或者一个数字。就像英语中的字母组合成单词一样,Bit组合成Byte。

懂了Bit和Byte后,我们就来看看那些看起来更熟悉的单位,比如KB、MB、GB和TB。它们都是字节的一种量级,只是在数量上有所不同而已。KB是千字节,大概相当于1000个字节,而MB是兆字节,相当于1000个KB。GB和TB以此类推,是千兆字节和千千兆字节的意思。

那这些单位到底有啥用呢?想象一下你的硬盘就像是一个巨大的书架,里面摆满了各种各样的书。每一本书占据的空间就是文件的大小,而存储单位就是用来告诉你这个空间有多大的。所以,当你看到一个文件大小是2.5GB时,就知道这个文件大概占据了书架上2.5个巨大的书的空间。


我们都知道,计算机存储数值都以信息的基本单元的组合进行存储,这个基本单元便是位(bit),我们通常用 0 和 1 来表示位的两种状态。

首先,让我们来谈谈位(Bit)。你可以把位想象成计算机世界中的最小单元,就像一把开关,只能是开(1)或关(0)。虽然一个Bit看起来微小得几乎可以忽略不计,但它是所有数字、文字、图像和音频数据的基础。换句话说,计算机中的所有信息都是以Bit的形式存储和处理的。、

为什么使用 0 和 1 而不是 0、1、2、3、4、5 或者 6、7、8、9、10 等等这样的数字组合呢?

我们可以想象这样一种实际情况:我们的计算机归根结底是一些硬件在进行处理和计算,硬件是需要电流起作用的,电流可以产生高电压和低电压,在数字电路中,通常将高电压视为 1 ,低电压视为 0 ,因此我们信息存储的最终形式是一连串 1 和 0 的组合。这种表达形式与我们在逻辑中经常使用 true 和 false 是类似的。

也许上面这个例子还是比较抽象,那么我们还可以想象这样一种更古老的实际情况:早期的计算机还不具备处理高级语言的能力,程序员们只能将要写的程序和要处理的数据变成一条条纸带交给计算机去处理。而纸带上某个特定位置的状态是有限的,人们通过在纸带上打洞还是不打洞来表示 1 和 0 。因此数据通过一连串打洞和不打洞的序列进行表示,即很多 1 和 0 的序列,这种数据表示的思想也一直延续到现在。

字节


通过上面的讲解我们也能看到,一个位能表达的信息太少了,因此我们通常将单个的位连接组合起来,组成更大的存储单元,我们称这种最小组合单元为一个字节(byte),一个字节由 8 个位构成,它足以用来存储一个 char 类型的数据。

让我们来谈谈字节(Byte)。字节是由8个Bit组成的单位,它是计算机中最基本的数据单元之一。你可以把字节看作是一种“组装方式”,把8个Bit组合在一起,以便表示更复杂的信息。在字节的世界里,每个Bit都像是一个开关,而字节则是这些开关的组合,用来表示不同的字符、数字或其他数据。

了解了位和字节的定义后,让我们来看看它们之间的关系。简单来说,一个字节就是8个位。当我们谈论存储空间时,我们通常使用字节作为基本单位,因为它更具可读性和实用性。但要记住,一切都是从最小的位开始的,字节只是这些位的组合。


随着存储需求的日益增长,在现在大多数计算机中,字节被组合成更大的存储单位,我们称为字(word),一个字足以存储一个 int 类型的数据。现在的大多数计算机要么使用四字节的字,要么使用八字节的字。我们通常所说的 32 位机器或者 64 位机器其实就是指计算机处理器一次能处理的数据大小,32 位即 4 个字节,64 位即 8 个字节。

补充


字节(Byte)是存储数据的基本单位,并且是硬件所能访问的最小单位。前面说过,CPU 只能直接处理内存数据,不能直接处理硬盘数据。硬盘数据必须先调入内存条中才可以运行。内存中存储数据的最小单位是“位(Bit)”。字节是存储数据的基本单位,位是存储数据的最小单位,不要混淆了。

内存里面存放的全是二进制代码。内存里面有很多“小格子”,每个“格子”中只能存放一个 0 或 1。一个“小格子”就是一位,所以“位”要么是 0,要么是 1,不可能有比位更小的单位。那么字节和位是什么关系呢?8 个“小格子”就是一字节,即一字节等于 8 位。

那么为什么硬件所能访问的最小单位是字节,而不是位呢?因为硬件是通过地址总线访问内存的,而地址是以字节为单位进行分配的,所以地址总线只能精确到字节。那如何控制到它的某一位呢?这个只能通过“位运算符”,即通过软件的方式来控制。

字符(Character)计算机中使用的字母、数字、字和符号,比如’A’、’B’、’$’、’&’等。

一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。