有人在悟空问答里问我:什么是模2运算?在这里,我就用浅显的语言,来为大家说说这有趣的模2运算。

首先这个问题涉及到远古20000年至今还被广泛应用;其次这个问题横亘哲学、数学、现代计算机技术、通信技术等诸多学科,涉猎广泛,作为一个科普题目来说,非常有意义。

“模2运算”在我们上大学里应用数学里进制转换里涉及到,学习计算机及相关专业的基础学科里也学习到。

一、什么是模?什么是“模2运算”

那么什么是“模”呢?“模”是英语“modulo”的音译,也简称为“mod”,作为名词是“模;模数;系数;模量”的意思;作为介词是“对…取模”的意思;而作为动词是“按模计算”的意思。是不是一头雾水了?那么说中国话,模就是对一个整数求余数的运算,也称为“取模运算”或者“取余运算”,这两种运算不太一样,当被“模”的整数为正数时,两种运算是一样的,当“模”的整数为负数时,两种运算就不一样了,这里就不展开讨论了。为了好理解,我们可以理解为“模”就是对一个整数求余数的那个被除数。当这个被除数为“2”时,我们就称为“模2运算”。比如:5 MOD 2 余 1,这里2就是模数。

二、“模2运算”原理是什么?

其实“模 2运算”原理很简单 ,就是数学中二进制的四则运算,包含“加”、“减”、“乘”“除”,其规则和我们十进制里加减乘除四则运算规则是一样的,而不一样的是不考虑借位或进位的问题(有进位时,保留计算本位数 ,而不向前一位进位;减法时不够减,相当于从前一位借1当2,而前一位并不减少)这样,“模2运算”后,结果具有只针对本位有效,而对上一位、下一位不产生影响的特点。

模2加法:

0 0 =0,1 0 = 0 1 =1,1 1=0

模 2加法是 以最后位对齐竖列相加,根据模2运算法则,可以简单总结为:奇数个1相加得1,偶数个1相加得0

模2减法:

0-0 = 0,1-1 = 0,1-0=1,0-1=1

第四式代表了模2减法的特征,从它也可得出 1=-1的结论

模2乘法:

一位数的模2乘法定义如下:0×0=0,0×1=0,1×0=0,1×1=1

多位数的模2乘法与普通乘法一样演算,唯一的区别是,部分积相加时按模2加,即奇数个1相加得1,偶数个1相加得0。

模2除法:

模2除法是模2乘法的逆运算。模2除法具有下列三个性质:

1、当最后余数的位数小于除数位数时,除法停止。

2、当被除数的位数小于除数位数时,则商数为0,被除数就是余数。

3、只要被除数或部分余数的位数与除数一样多,且最高位为1,不管其他位是什么数,皆可商1。

三、“模 2运算”是为什么发明的?

“模2运算”是为了机器运算而发明的。

这是德国天才大师莱布尼茨(Gottfried Wilhelm Leibniz,1646 - 1716)受中国《周易》影响和启发,为了解决机器运算的方法,发明了完整的二进制运算法则。莱布尼茨在1679年3月15日记录下他的二进制体系的同时,还设计了一台可以完成机械计算的机器。这也为200多年以后电子计算机的发明奠定了基础。

三维布尔运算原理图解(白话科学之有趣的模2运算)(1)

莱布尼茨

四、现在“模2运算”主要应用

“模2运算”应用十分广泛,主要应用于数据存储及数据传输、数据通信时对数据正确性的校验方面。著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,WinRAR、NERO、ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。

由于我们现代的通信技术都是采用数字技术,在传输中,存在着模-数、数-模多次转换 。在数字传输中,都是将各种信息转换为二进制进行传输的。传输有可能是有线传输,也可能是无线传输。受传输手段或者传输距离等影响,不可避免产生干扰,对传输质量肯定要带来影响。于是,人们就发明了一个在传输数据的同时,加上一个“校验数据”。现在数字通信采用的是CRC(Cyclic Redundancy Check)校验方法也叫循环冗余校验方法。

其特点是:检错能力强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。

三维布尔运算原理图解(白话科学之有趣的模2运算)(2)

由于篇幅有限,我就不一一展开说明,以后我会以文章形式进行科普。

【长春雅诗轩】是科普创作号,白话科学系列,是用通俗易懂的语言,为大家进行科普。也可作为青少年了解高新科技的课外读物,希望大家能够喜欢。

更多请关注【长春雅诗轩】

,