模2除法

模2除法

计算方法
模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。所以实际上就是异或。然后再移位移位做下一位的模2减。[1]1000000B(被除数)对1011(除数)做模2除法,得到的余数便是101B(即CRC校验和),所以该数据的循环冗余校验后的数据应为1000000B+101B=1000101B。想知道模2除法,只需要知道什么是异或运算就很容易算出。
    中文名:模2除法 外文名: 适用领域: 所属学科: 应用:网络传输、计算机 功能:循环冗余校验码(CRC)的计算 实质:异或 定义:二进制下的除法

计算方法

加法

从低位到高位依次运算,“满二进一”,同一数位上只有四种情况:0+0=0,0+1=1,1+0=1,1+1=10

减法

先把数位对齐,同一数位不够减时,从高一位借位,“借一当二”。

乘法

乘法口诀为:零零得零,一零得零,一一得一。

除法

每一位商数非0则1。

二进制除

二进制数字的计算,很有特点。两个二进制数字的相加,如果不考虑进位,就是“模2和”;两个二进制数字的相减,如果不考虑借位,就是“模2减”。

“模2和”、“模2减”,名称、算法虽然不一样,但是,结果是相同的,实际上都是两个二进制数字相“异或”。如果两个二进制数字相同,“异或”的结果就是0;如果两个二进制数字不同,“异或”的结果就是1。

“模2除”就是在求余数的时候,应用了“模2减”。在“模2除”中,因为使用了“模2减”,所以在商上1的时候,不要考虑够不够减(因为这里不是二进制的除法),只要最高位是1,位数凑够了四位,就可以用它“模2减”1001

实例分析

例1

1111000除以1101

例2

被校验的数据M(x)=1000,其选择生成多项式为G(x)=x^3+x+1,该数据的循环冗余校验和应为多少?

G(x)=x^3+x+1对应的二进制数为1011,且G(x)中含3个项式,生成多项式为4位二进制,由CRC规则应该取(4-1)=3位(校验和),所以可以预加上3位得到1000B*2^3=1000000B;

1000000B(被除数)对1011(除数)做模2除法,得到的余数便是101B(即CRC校验和),所以该数据的循环冗余校验后的数据应为1000000B+101B=1000101B。

具体说明

想知道模2除法,只需要知道什么是异或运算就很容易算出。

计算机中,异或逻辑表示为:(记忆方法:同为0异为1)

1^1=0

0^0=0

1^0=1

0^1=1

相关词条

相关搜索

其它词条