模二运算

2019-04-13 14:44发布

本文转自:https://baike.baidu.com/item/模2运算/18556715?fr=aladdin

模二运算

模2运算是一种二进制算法,CRC校验技术中的核心部分。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算,模2减法是不带借位的二进制减法运算。这样,两个二进制位相运算时,这两个位的值就能确定运算结果,不受前一次运算的影响,也不对下一次造成影响。

模二加法

一种二进制的运算,等同于“异或”运算。 通常用于计算机和电子领域。规则是两个序列按位相加模二,即两个序列中对应位,相加,不进位,相同为0,不同为1。 [1]
1+1=0+0=0
1+0=0+1=1
0 1 0 1
0 0 1 1
──────
0 1 1 0

模二减法

模二减法(等价于按位异或)
编辑
0-0=0
0-1=1
1-0=1
1-1=0
例如0110-0011=0101,列竖式计算:
0 1 1 0
0 0 1 1
──────
0 1 0 1

模二乘法

0×0=0
0×1=0
1×0=0
1×1=1
多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果(或称部分积)时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。例如1011×101=100111,列竖式计算:
在这里插入图片描述

模二除法

1111000除以1101
在这里插入图片描述
1011是商,111是余数。
在CRC中规定除数为n+1位,余数为n位。如果余数不够n位的话要在前面补0。