模2运算
2019-04-13 11:47发布
生成海报
模2运算是一种二进制算法,CRC校验技术中的核心部分。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算,模2减法是不带借位的二进制减法运算。这样,两个二进制位相运算时,这两个位的值就能确定运算结果,不受前一次运算的影响,也不对下一次造成影响。
模2加
等同于“异或”运算,两个序列中对应位,相加,不进位,相同为0,不同为1。
如:1+1=0
, 0+0=0, 1+0=1,0+1=1
模2减
减法规则同加法规则一样,按加法规则计算
如:0-0=0, 1-1=0,
0-1=1, 1-0=1
模2乘
多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果(或称部分积)时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。例如1011×101=100111,列竖式计算: 0*0=0,
0*1=0, 1*0=0, 1*1=1
1 0 1 1
× 1 0 1
──────
1 0 1 1
0 0 0 0
1 0 1 1
────────
1 0 0 1 1 1
模2除
模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或
如111000除以1101:

-
#第一步
1111000
1101
0010000 ----余数,商为1,只要第一位非0商就是1
#第二步,每步移一位,当起始位为0时,除以0;为1时除以除数。
010000
0000
010000 ----余数,商为0,只要第一位是0商就是0
#第三步
10000
1101
01010 -----余数,商为1,这里的余数你猜出,其实就是对应位异或
#第四步
1010
1101
0111 ------余数,商为1,如果位数比除数还小,不再继续运算
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮