为了帮助基础薄弱的学员快速掌握一些基本的概念和技巧,我发表这个帖子,希望能在最短的时间内让学员快速对基础概念有正确的理解。
比特(bit)和字节(byte)
比特和字节是任何想理解计算机的人必须先掌握的最基础的两个概念。下图展示了这两个概念和相互之间的关系:

我们熟知的十进制是“逢十进一”,类似的,计算机普遍采用的是二进制,它的基本规则是“逢二进一”。十进制有0~9十个基本数字,类似的,二进制只有两个基本数字,0和1。一个二进制数字中的一位即为一个比特,英文单词是bit。连续的8个比特组成一个字节,英文单词是byte。当一个程序读写内存或者磁盘上的文件时,它能访问的最小单位是字节,而不是比特,即:一个程序要么读取一个字节,要么写入一个字节,不能只写入一个比特或者只读一个比特。字节是计算机软件的细胞。
知道了这两个基本概念,我们可以想象出如下的图,计算机的内存和磁盘上保存着连续的0和1的比特,我们把它们按照8个一组进行分组,就变成了连续的字节,如下图所示。

类似的,当我们觉得字节还是太琐碎,我们可以把n个字节作为一个基本单位。譬如PG里面就把8192个字节作为一个整体进行读写。
一个字节的作用是有限的,必须是多个连续排列的有序的字节才能有更大的作用。在一个有序且连续的字节队列中,每个字节有两个基本属性:这个字节所能表示的值(value),和这个字节在这个队列中的位置(position)。字节的位置又被称为“地址”(address)或者“偏移量”(offset)。