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 的位的权重相加即可得到对应的十进制数。img1.png

十进制到二进制转换

这一转换更加简单,我们使用整数的重复除2法

  1. 将数字除以 2。
  2. 将上一次得到的结果再除以 2,直到产生零商。
  3. 除法产生的余数形成二进制数。
  4. 第一个余数是最低有效位(LSB)

    对于小数,我们
    将除2改为乘2
    :
  5. 将数字乘以 2。
  6. 重复将乘积的小数部分乘以 2,直到小数部分的乘积为零或达到所需的小数位数。
  7. 由乘法产生的进位形成二进制数。
  8. 第一次进位是**最高有效位(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上的内容挺类似的,我这里做了整理归纳和汉化。在下一节我会讲一些进阶的拓展内容,包括我自己的一些认识。特别感谢阿斌小🐴的支持!!!