数字世界的构建手册
数字存储
计算机内存是由无数个电容器组成,可以通过电路控制给电容充电或放电,充满电代表 1,未充电代表 0,所以计算机存储任何数据只能用 0 和 1 来表示。
每个电容就是一个最小存储单元,称为 bit(位)。
由于每个 bit 只能是 0 和 1,为了能表示更多的数, 计算机采用二进制存储数字,逢 2 进 1.
这就是 二进制.
1 | 10 // 这是十进制 |
当一个二进制过长时, 阅读就不太方便了…
分组可以方便阅读, 例如可以四个 bit 为一组, 那么每一位的十进制取值就是 015.F 代替.
这就是 十六进制, 逢 16 进 1. 为了表示方便, 用字母来代替两位数的值.
也就是 大于 9 的用 A
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 进行许可。