《深入浅出计算机组成原理》学习笔记 Day6

文章介绍了二进制编码的基本原理,如何将二进制转换为十进制以及十进制转换为二进制。此外,还讨论了ASCII码作为早期的字符表示标准,以及随着多语言需求的增长,如何演进到各种字符集和字符编码系统,以适应不同国家的文字表示。
摘要由CSDN通过智能技术生成

1. “逢二进一”

把一个二进制数对应到十进制,就是把从右到左的第 N 位,乘上一个2 的 N 次方,然后加起来,就成了一个十进制数。从右到左的位置,是从 0 开始的。

例如:
001 1 2 = 0 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 = 3 10 0011_{2} = 0 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 3_{10} 00112=0×23+0×22+1×21+1×20=310

对应的,如果想要把一个十进制的数,转成一个二进制,使用短除法就行了。也就是,把十进制数除以 2 的余数,作为最右边的一位。然后用商继续除以 2,把对应的余数紧靠着刚才余数的右侧,这样递归迭代,直到商为 0 就可以了。

2. 字符串的表示

不仅数值可以用二进制表示,字符乃至更多的信息都能用二进制表示。

例如,字符串(Character String).最早计算机只需要使用英文字符,加上数字和一些特殊符号,然后用 8 位的二进制,就能表示日常需要的所有字符了,这个就是我们常常说的 ASCII 码(American Standard Code for Information Interchange,美国信息交换标准代码)。

ASCII 码就好比一个字典,用 8 位二进制中的 128 个不同的数,映射到 128 个不同的字符里。比如,小写字母 a 在 ASCII 里面,就是第 97 个,也就是二进制的 0110 0001,对应的十六进制表示就是 61。而大写字母 A,就是第 65 个,也就是二进制的 0100 0001,对应的十六进制表示就是 41。

不管是整数也好,浮点数也好,采用二进制序列化会比存储文本省下不少空间

ASCII 码只表示了 128 个字符,一开始倒也堪用,毕竟计算机是在美国发明的。然而随着越来越多的不同国家的人都用上了计算机,想要表示譬如中文这样的文字,128 个字符显然是不太够用的。于是,计算机工程师们开始各显神通,给自己国家的语言创建了对应的字符集(Charset)和字符编码(Character Encoding)。

字符集,表示的可以是字符的一个集合。而字符编码则是对于字符集里的这些字符,怎么用二进制表示出来的一个字典。同样的文本,采用不同的编码存储下来。如果另外一个程序,用一种不同的编码方式来进行解码和展示,就会出现乱码。

在这里插入图片描述

参考

极客时间《深入浅出计算机组成原理》:http://gk.link/a/11UMi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Balaaam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值