数字世界的构建手册

数字世界的构建手册

Wreckloud_雲之残骸 Lv3

数字存储

计算机内存是由无数个电容器组成,可以通过电路控制给电容充电或放电,充满电代表 1,未充电代表 0,所以计算机存储任何数据只能用 0 和 1 来表示。
每个电容就是一个最小存储单元,称为 bit(位)。

由于每个 bit 只能是 0 和 1,为了能表示更多的数, 计算机采用二进制存储数字,逢 2 进 1.
这就是 二进制.

1
2
3
10 // 这是十进制

0b1010 //10 使用0b开头来表示二进制

当一个二进制过长时, 阅读就不太方便了…
分组可以方便阅读, 例如可以四个 bit 为一组, 那么每一位的十进制取值就是 015.

这就是 十六进制, 逢 16 进 1. 为了表示方便, 用字母来代替两位数的值.
也就是 大于 9 的用 A
F 代替.

1
0xA //10 十六进制以0x开头

也可以 三个 bit 为一组, 那么每一组的十进制取值就是 0~7

这就是 八进制, 逢 8 进 1.

1
012 //还是10 八进制以0开头

字符存储原理

使用一串固定的二进制数能表示一个十进制数.

那么同理的,
使用一串固定的二进制数, 再指定这个二进制数表示的字符,

也就是制定一套字符与二进制的映射关系, 就能实现存储字符了.
这就是编码表的原理.

ASCII 编码表

最早的编码表就是 ASCII 编码表, 它规定了数字字符, 英语字母 和其他常见符号等共计 128 个字符.
每个字符对应的数值称为 码点(Code Point).

如表所示, 由于常见字符对的码点用 8 个二进制位就可以表示, 因此在计算机设计时就默认以每 8 个 bit 为一组来读写数据.
为了表达方便, 像这样成组的 8 个 bit, 我们简称为 一个 Byte(字节), 简写为 B.

1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB

GBK 汉字内码拓展规范

由于只有 128 个字符, ASCII 码表覆盖有限, 因此各个国家都需要给自己单独规定编码表.

我国的 汉字内码拓展规范 简称 GBK, 在兼容 ASCII 码表的同时, 拓展了 2 万多个汉字.
相比于 ASCII 码用一个字节, GBK 码用两个字节来表示字符.

Unicode 码

如果有一万个国家, 那就得有一万种不同的编码.

因此, ISO (国际标准化组织) 就制定了统一的标准, Unicode 码, 也叫 统一/万国(union)码.
Unicode 码包含了世界上大部分国家的大多数文字和字符, 大约有 14 万多个.
其中包含 65536 个常用基础字符, 剩下的是补充字符.
其中, 汉字的码点通常占两个字节.

Unicode 编码表有多种不同的实现方式, 常见的有:

  • UTF- 8 : 是一种变长的编码方式. 它可以使用 1~4 个字节表示一个符号, 根据不同的符号而变化字节长度. (常用, 更节省资源)
  • UTF-16: 也是变长编码方式, 基础字符用 2 个字节, 补充字符用 4 字节.
  • UTF-32: 固定长度编码, 不管字符的 Unicode 码多大, 统一使用 4 个字节.

很多情况下, 我们都使用 变长编码方式 UTF-8, 下面简单介绍以下它的编码规则:

UTF-8 首先将码点的范围进行约束.
通过码点的范围来分配位数:

UCS-2 编码(16 进制) UTF-8 编码(二进制)
0000 ~ 007F 0xxx xxxx
0080 ~ 07FF 110x xxxx 10xx xxxx
0800 ~ FFFF 1110 xxxx 10xx xxxx 10xx xxxx
01 0000 ~ 10 FFFF 1111 0xxx 10xx xxxx 10xx xxxx

确定好范围, 再将 UCS-2 编码的二进制由低到高填入 UTF-8 中的 x 位中.

图像的存储

计算机中的图片都是由无数个 像素点组成的, 每个像素点有各自的颜色.
当像素点足够小, 足够多时, 就组成了人眼能识别的图像了.

显示器的每一个像素点都包含 红绿蓝(R/G/B) 三个子像素, 我们称为三基色.
通过调整每种颜色的亮度, 就能组合出世界上所有的颜色.
每种颜色的亮度都用 0 ~ 255 的数值来表示, 数值越大就越亮.

用两位十六进制 00 ~ FF 刚好能表示 0 ~ 255 , 因此三个颜色的亮度可以这样表示:

1
#RRGGBB

例如, 白色是所有颜色亮度最大值 255, 对应的十六进制是 FF

1
#FFFFFF

音频的存储

声音是靠物体震动传播, 震动的频率和振幅不同, 得到的声音的音高和大小也不同,
所以保存声音信息主要记录的就是: 声波的频率振幅.

计算机存储声音通常会经过三个步骤:采样、量化、编码

对音频最重要的两个元素 频率振幅 采样, 然后取其近似值做量化, 最后转换位二进制编码存储.


量化单位越密集, 音频越接近原始音频, 但代价是信息量大, 所需要的存储空间越大.

  • 标题: 数字世界的构建手册
  • 作者: Wreckloud_雲之残骸
  • 此记初现于 : 2024-12-28 16:57:44
  • 此记变迁于 : 2024-12-29 10:03:30
  • 链接: https://www.wreckloud.com/2024/12/28/猎识印记-领域/计算机通识/数字世界的构建手册/
  • 版权声明: 本幽影记采用 CC BY-NC-SA 4.0 进行许可。
影踪语