| 答:计算机的机器字长总是有限的,因而机器数的位数有限,所以可表示的数的个数有限。对于n位二进制数,只能表示2n个不同的数,因此有很多数用n位无法表示。
对于无符号定点整数来说,计算机运算过程中一般保留低n位,舍弃高位。这样,会产生两种结果:
① 剩下的低n位数不能正确表示运算结果。这种情况下,意味着运算的结果超出了计算机能表达的范围,有效数值进到了第n+1位,我们称此时发生了“溢出” 现象。
② 剩下的低n位数能正确表达计算结果,也即高位的舍去并不影响其运算结果。
“对一个多于n位的数丢弃高位而保留低n位数”这样一种处理, 实际上等价于“将这个多于n位的数去除以2n,然后丢去商保留其余数”的操作。这种操作运算就是“模运算”。在一个模运算系统中,运算的结果最终都是丢弃高位,只截取低n位。所以,只要不是“溢出”,即:只要真正的值不会进到第n+1位,结果就是正确的。这是模运算系统的特点
。 |