3.ASCII编码

ASCII编码

https://baike.baidu.com/item/ASCII/309296

1. ASCII 字符集

全称:American Standard Code for Information Interchange
美国信息交换标准代码

整合了128个字符
33个控制字符
10个数字字符
26个大写字母
26个小写字母
33个其他字符:例如运算符

2. 字符编号

从0-127,即00000000到01111111

3. 字符编码

ASCII码是 单字节编码,一个字节8位,但是只使用到7位,
首位固定为0。

拓展:关于换行符

windows的换行是回车,CR + LF,也就是0x0d + 0x0a,转义字符为:\r\n
linxu的换行是LF
mac的换行是CR

疑问1.为什么大写字母在前,小写字母在后?

可能是因为 拉丁字母,最开始只有大写字母,小写字母是后面出现的。

疑问2.为什么前32个都是控制字符,然后是可见字符,最后一个又是控制字符del呢?

因为早期的计算机是用纸袋打孔来记录数据的,比如要记录大写字母A,他的二进制是 0b01000001,那么纸带上就需要打两个孔。
如果我发现这个字母打错了,想要把他删掉,怎么做,总不能把孔补上吧?
于是干脆把孔都打上,表示原先的字符被删除了。也就是01111111表示删除,当计算机识别到7个孔,就知道原先的字符被删除了
这就是为什么ASCII 编码中,del这个字符在最后了。

疑问3.ASCII是单字节编码,首位为0。如果首位故意置为1会怎么样?

如果首位为1的话,就不是标准的ASCII码的正确的字符编码,会显示为乱码。

4. 演示

在 notepad++ 中输入 ABC,然后使用插件查看:

可以看到显示的是他们的ASCII码的十六进制:41、42、43

然后输入一个回车,再用插件查看

可以看到是两个字节 0d 0a。注意在这个插件右边的Dump中,控制字符显示为英文的句号。

如果此时手动输入00,01,也就是ASCII字符集中的前两个字符 再切回去会怎么显示?

一般的编辑器,控制字符是不会显示的,但是notepad++就直接显示了控制字符的缩写的图像

如果手动输入0x80,也即是0b10000000,如果首位为1的话,就不是标准的ASCII码的正确的字符编码,应该会显示为乱码。

一般的编辑器会乱码,但是notepad++,就直接将十六进制显示出来了,可以注意到在插件的dump中,已经乱码了,这个了解一下即可。

我们用普通的notepad打开,可以看到乱码了:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值