EEE104-Lecture 1
EEE104-Lecture 1
迟然注意⚠️:本专栏的顺序与上课顺序不一定完全一致!!!
二进制数
什么是二进制?
- 二进制是一种以2为基数的记数系统,也就是说,它只使用0和1两个数字来表示所有数。二进制数的每一位称为一个比特(bit)。
- 二进制的进位规则是“逢二进一”,即每一位上的数字如果满2,则进一位,并将该位清零。就像我们常用的十进制一样,每一位上的数字如果满10,就往前进一位,并且该位清零。例如,二进制数1111,其十进制表示为15。
- 在计算机科学中,二进制有着广泛的应用。计算机中的所有数据都以二进制形式存储,包括文本、图像、声音等,并且运算都是基于二进制进行的。网络中的数据传输也都是以二进制形式进行的。
二进制的小数
二进制也有小数。在小数点左侧,从第0位开始,每个位的权重分别表示2^0^, 2^1^, 2^2^…2^n-1^。而右侧则为2^-1^, 2^-2, 2^-3…2^-n^。
二进制到十进制转换
我们将每个位的权重都表示出来,将所有将所有为 1 的位的权重相加即可得到对应的十进制数。
十进制到二进制转换
这一转换更加简单,我们使用整数的重复除2法:
- 将数字除以 2。
- 将上一次得到的结果再除以 2,直到产生零商。
- 除法产生的余数形成二进制数。
- 第一个余数是最低有效位(LSB)。
对于小数,我们将除2改为乘2: - 将数字乘以 2。
- 重复将乘积的小数部分乘以 2,直到小数部分的乘积为零或达到所需的小数位数。
- 由乘法产生的进位形成二进制数。
- 第一次进位是**最高有效位(MSB)**。
二进制算数
对于二进制算数,我觉得并没有什么可以说的。因为这完全可以类比为十进制的加减乘除。唯一的区别就是二进制的上限是二,十进制的上限是十。所以二进制也是可以使用竖式运算的。
二进制加法:
二进制减法:
二进制乘法:
二进制除法:
二进制的变换方式
二进制拥有两种变换方式,我们称它为”1的补“和”2的补“。(这会在下一节中重点讲述)
1的补
将二进制数中的所有 1 都换成 0,所有 0 都换成 1。
2的补
将 1 的补加 1。这对于负数的表示很重要。
十六进制数字
是的,除了二进制和十进制,我们还有十六进制。
十六进制数字系统有 16 位数字,包括10 个数字(0-9)和 6 个字母字符(A-F)。每个数字代表一个 4 位的二进制数。十六进制数可以下标 16,也可以后面跟着一个“h”。
以下是十六进制的表格:
到达F后,我们需要进一位。在16进制的表示是:10, 11, 12…1E, 1F,在二进制的表示是:0001 0000, 0001 0001, 00010010…0001 1110, 0001 1111。
十六进制到二进制的转换
从上面我们可以知道,1 个十六进制字符就是 4 个二进制字符。所以我们只需要将每个十六进制符号替换为相应的 4 位。并且最左边的 0 是可以删除的。
十六进制到十进制的转换
类似于二进制转十进制,使用权重与每一位上的数相乘后想加。但是首先我们需要把十六进制每一位上的数换成十进制,并且权重从右到左分别是16^0^, 16^1^, 16^2^……
我们以十六进制的“B2F8”为例子,来进行一次转换:
十进制到十六进制的转换
类似于十进制转二进制,使用重复除 16 法即可,就不过多赘述了。
十六进制加法
前面的十进制与十六进制的换算其实都是为了这一部分做准备。因为十六进制同时存在数字和字母,所以不能直接进行加法运算,而是需要先转化为十进制,而后再转回去。
并且我们需要遵循以下原则:
- 如果两个数字的和小于 16,可以直接转为对应的十六进制数字。
- 如果这两个数字的和大于或等于 16,则需要减去 16,并在前一列加 1。(类似于进位)
二进制编码十进制
- 二进制编码十进制(Binary Coded Decimal, BCD),是一种用二进制代码表示十进制数字的简单方法。
- BCD 系统只有 10 个代码组。
- 它主要用于用户界面,如键盘和数字显示器。
- 8421 码是一种 BCD,其中四个比特的权重分别为 8, 4, 2和1。
其实说白了,就是用二进制来表示十六进制。需要注意的是,每一个数字都由一个四位的二进制组来表示,一定不要和二进制表示十进制搞混了!
这一部分的转换就是对着表查或者是背下来,四个四个为一组就行。
BCD的加法
- 我们可以直接使用二进制加法规则将两个 BCD 数相加。
- 如果一个 4 位组的十六进制小于 10,那么它就是一个有效的 BCD 数。(因为十六进制大于 9 的情况下是字母)
- 如果一个 4 位组的十六进制大于或等于 10,或者产生了溢出的位(也就是向第五位进了1),则结果无效。需要在此 4 位组上加 6(0110)来跳过 6 个无效状态(6个字母)。
正常的情况:
需要+6的情况:
尾声
这个部分的内容十分基础,但是大家一定要理解透彻!!!这些基本都是概念类的内容,和PPT上的内容挺类似的,我这里做了整理归纳和汉化。在下一节我会讲一些进阶的拓展内容,包括我自己的一些认识。特别感谢阿斌和小🐴的支持!!!