跳转到内容

数据编码理论/模二运算

来自维基教科书,开放的书籍,开放的世界

模运算,通常用“%”运算符表示,在数据编码中是一个有用的运算。模是指两个数相除后得到的余数。例如,如果我们将 10 除以 3,不计算小数点,我们将得到

余数为

在除法中,我们通常有以下公式

其中s是我们的被除数,d是我们的除数,n是我们的商,r是余数。从这个公式,我们有两种运算

请注意,从这些公式中可以看出r必须始终小于d

模二运算

[编辑 | 编辑源代码]

模二运算是一种算术系统,其中每个结果都取模二。以下是一些例子

简而言之,如果结果为奇数,则运算结果为 1,如果结果为偶数,则运算结果为 0。由于我们在数据编码中处理的是单个位,因此我们的大多数操作数将是 1 或 0。只要我们的操作数是 1 或 0,我们的结果是模二,我们写入的所有数字都应该是 1 或 0。

模二运算的一个常见应用是在数字电路中,其中逻辑运算都是模二进行的。

模二运算符

[编辑 | 编辑源代码]

在我们的模二运算系统中,我们定义了新的运算符。这些运算符通常与布尔逻辑运算符非常相似,因此我们将在下面讨论布尔逻辑运算符。

加法
要添加两个数字,我们对结果取模二。以下是加法运算的真值表
+ 0 1
0 0 1
1 1 0
如果您熟悉布尔逻辑,您会发现加法与异或运算相同。因此,我们将交替使用“加法”和“异或”这两个术语,并将模二加法运算用“圆圈加号”表示
乘法
模二乘法正常进行,不需要定义新的运算符。以下是乘法运算的真值表
× 0 1
0 0 0
1 0 1
这与布尔“与”运算完全相同。我们将交替使用“乘法”和“与”这两个词。

减法和除法运算在数据编码中很少见,因此我们不会在这里讨论它们。

华夏公益教科书