饱和运算(saturation arithmetic),即当运算结果大于某上限或小于某下限时,其运算结果为该上限或下限的一种运算方式。
比方说,当运算范围为 [0, 255] 时:
- 100 + 200 的结果为255,而非300;
- 100 - 200 的结果为0,而非-100;
- 因此,(100 + 50) + (100 - 200) 首先会被计算成150 + 0,最终计算得出的结果为150,而非50;
- 若重新排列上述算式,使其成为 (100 + 100) + (50 - 200),其计算结果则为200。
- 此外,3(150 - 50) 的结果为255,非300。
- 而与此同时 3(150) - 3(50) 的结果为105,非300。
综上所述,使用饱和运算时,结合律与分配律存在着失效的可能性。
用途
由于使用饱和运算容易导致结合律以及分配律失效,这种运算并不常见于抽象数学领域,但在数字电路中广泛使用。
评论 (0)