计算机基础知识第七期——进制与编码
一、进制转换
计算机底层只认 二进制(0/1),但为了人类读写方便,常用:
– 二进制(Binary): 0, 1 ,底 2
– 十进制(Decimal): 0~9 ,底 10
– 八进制(Octal): 0~7 ,底 8
– 十六进制(Hex): 0~9, A~F ,底 16
1. 十进制 → 其他进制
除基取余,逆序排列
– 除以目标进制,记录余数
– 直到商为 0,把余数从下往上读
例:十进制 25 → 二进制
25 ÷ 2 = 12 … 1
12 ÷ 2 = 6 … 0
6 ÷ 2 = 3 … 0
3 ÷ 2 = 1 … 1
1 ÷ 2 = 0 … 1
结果:11001
2. 其他进制 → 十进制
按位展开 × 权值相加
例:二进制 11001 → 十进制
1×2⁴ + 1×2³ + 0×2² + 0×2¹ + 1×2⁰
= 16 + 8 + 0 + 0 + 1 = 25
3. 二进制 ↔ 十六进制(最常用)
– 4 位二进制 = 1 位十六进制
– 从右往左分组,不足补 0
例:
二进制 11001 → 分组 0001 1001 → 十六进制 19
二、常见编码方式
编码 = 把字符/数字 → 计算机能存的二进制
1. ASCII
– 美国信息交换标准码
– 只包含:英文字母、数字、符号
– 1 字节(8 位),范围 0~127
– 缺点:不支持中文
2. GB2312 / GBK / GB18030
– 中文国家标准编码
– GB2312:简体中文常用字
– GBK:扩展,包含繁体、生僻字
– GB18030:更大字符集,兼容所有汉字
– 特点:中文系统早期常用,与 ASCII 不兼容
3. Unicode(统一码)
目标:全球所有语言用一套编码
常见实现:
– UTF-8:互联网最主流
– 英文 1 字节,汉字 3 字节
– 兼容 ASCII,无乱码风险
– UTF-16:Windows 内核、Java 常用
– UTF-32:固定 4 字节,浪费空间
4. Base64
– 不是字符编码,是二进制转文本的编码
– 把任意数据转成 A-Z、a-z、0-9、+/ 共 64 个可打印字符
– 用途:图片转字符串、URL 传输、邮件附件
5. URL 编码
– 把特殊字符(如空格、中文、&、=)转成 %XX 形式
– 例: 中文 → %E4%B8%AD%E6%96%87
– 用于网址、表单提交
简单总结
– 进制核心:除基取余、按权展开
– 编码核心:
– 英文用 ASCII
– 中文早期用 GBK
– 现在全球统一用 UTF-8
– 数据传输用 Base64 / URL 编码
