二进制与字符编码
计算机是由逻辑电路组成,逻辑电路只由开关两种状态组成
也就是一个位置仅仅只能表示两种状态,k位可以表示2^k种状态
bit位,8bit组成1byte字节
1024byte = 1KB千字节
1024KB = 1MB兆字节
1024MB = 1GB吉字节
1024GB = 1TB太字节
8bit可以表示256种状态,这256种状态可以与现实中的字符以及特殊含义的字符一一对应,ASCII码就是类似的产物,当然很明显256种太少了,因此产生字符编码
GB2312,八零后,可以表示简体中文字符集,可以表示7445个字符
GBK,除简体中文还可以表示繁体中文
GB18030,可以白哦是27840可以表示各种民族的语言(规定字符可以由1,2,4字节组成)
但是这样就会出现一个问题,不兼容的问题,同样一个编码对应不同的字符
此时出现Unicode几乎包含了全世界的字符,因此其成为了字符编码的标准
UTF-8,规定英文用ASCII,一个字节去表示,而中文用三个字节去表示,但是在Unicode中,规定都是用两个字节去表示
可以这样理解,Unicode是字符编码,是对于各种字符的统一编码,反止出现一对多的情况出现,而UTF-8则是字符代码,因为在实际过程中,比如ascii码中的英文字符,其本身仅需一个字节就可以完成,但是在unicode中却需要两个字节来完成,这是对内存的一种浪费,为了优化内存,因此出现了UTF-8这种代码方式
为了方便交流以及兼容性上的考虑,因此我们人为的对现实世界中的各种字符进行了编码,也就是将整数与字符一一对应,实现了如今的输入环境
print(chr(0b100111001011000))//输出结果为 乘
这边可以显示出如果print想要输出字符,通过整数来输出的化,print函数有点像C中的格式化输出,通过chr函数来实现
反过来如果输出字符的十进制那么就为下面的代码行
print(ord('乘')) //结果为 20056
注意这边的转换关系,以及如果在python中想要使用二进制,需要在数字前面加上0b,否则一般情况下系统是当作十进制处理的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)