“模”的概念:
“模”是指一个计量系统的计数范围。比如,时钟的计量范围是0至11,模=12。计算机也可以看成一个计量机器,因为计算机的字长是指定的,即存储和处理的位数是有限的,因此它也有一个计量范围,即存在一个“模”。因此,表示n位的计算机计量范围是0至2n-1,模=2n。
“模”的实质:
实质上,“模”就是计量器“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。
举例:
假设当前时间时针指向十点,那么什么时候时针会指向八点呢?
第一种情况:10-2=8,倒退两小时时针会指向八点。
第二种情况:10+10=8,前进十小时时针会指向八点。
因为在时钟运算中,模=12,所以,当超过12时就会重新开始计量。也可以理解为,在某种意义上,10-2和10+10的结果相同,它们都使得时针会指向八点。
此时我们发现2+10=12,也就是说,对“模”而言,2和10互为补数。同理,计算机与之相同。n位的计算机,假设n=8,那么最大的数为11111111,若加1则得到100000000,因为只有8位,所以最高位省略,得到00000000,又开始了新的轮回。
这样做的好处就是可以把减法问题转换成为加法问题,只需要把减数用相对应的补数表示就可以进行运算,这就是补码思想。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程