“模”的概念:

“模”是指一个计量系统的计数范围。比如,时钟的计量范围是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,又开始了新的轮回。

这样做的好处就是可以把减法问题转换成为加法问题,只需要把减数用相对应的补数表示就可以进行运算,这就是补码思想。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)