1. 进制
1.1 二进制
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的都是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

1.2 十六进制
16进制,英文名称Hexadecimal(简写Hex), 在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或af)表示,其中:AF表示10~15,这些称作十六进制数字,比如十进制13用16进制表示是D, 28用16进制是1C。
16进制在计算机领域应用普遍,常见的有html\css的颜色表、mac地址、字符编码等都用16进制来表示。 这是因为将4个位元(Bit)化成单独的16进制数字不太困难。1字节可以表示成2个连续的16进制数字。可是,这种混合表示法容易令人混淆,因此需要一些字首、字尾或下标来显示
2. 编码
2.1 ASCII码
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
一个空格对应的数字是0 翻译成二进制就是0(注意字符’0’和整数0是不同的)
一个对勾√对应的数字是251 翻译成二进制就是11111011
2.2 GB2312 & GBK
如果2个字节连在一起,且每个字节的第1位(也就是相当于128的那个2进制位)如果是1,就代表这是个中文,这个首位是128的字节被称为高字节。
1995年, gb2312,加入更多字符,这个编码叫GBK,一直到现在,我们的windows电脑中文版本的编码就是GBK.
2.3 UTF-8
为了解决存储和网络传输的问题,出现了Unicode Transformation Format,学术名UTF,即:对unicode字符进行转换,以便于在存储和网络传输时可以节省空间!
- UTF-8:使用1、2、3、4个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个
- UTF-16: 使用2、4个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
- UTF-32: 使用4个字节表示所有字符;
总结:UTF 是为unicode编码 设计 的一种 在存储 和传输时节省空间的编码方案。
2.4 常用编码介绍一览表
| 编码 | 制定时间 | 作用 | 所占字节数 |
|---|---|---|---|
| ASCII | 1967年 | 表示英语及西欧语言 | 8bit/1bytes |
| GB2312 | 1980年 | 国家简体中文字符集,兼容ASCII | 2bytes |
| Unicode | 1991年 | 国际标准组织统一标准字符集 | 2bytes |
| GBK | 1995年 | GB2312的扩展字符集,支持繁体字,兼容GB2312 | 2bytes |
| UTF-8 | 1992年 | 不定长编码 | 1-3bytes |
Python3推出后,默认编码改成了unicode, 文件存储编码变成了utf-8
本文探讨了计算机中的核心概念,包括二进制基础、十六进制的应用、ASCII码与不同编码体系(如GB2312、GBK、UTF-8)的介绍。重点讲解了字符编码的发展和适用场景,适合初学者理解信息技术中的编码规则。
8万+

被折叠的 条评论
为什么被折叠?



