Csapp,二的补加法的问题

Csapp 2.3.2 two-complement addition.
如图中的两个红框是如何推倒的,即z mod 2w = z + 2w.
这里使用的模运算规则是什么,因为我的理解z是一个负数,而2w是一个正数,他们mod的结果不应该是一个负数吗?我用c验证过。谢谢图片描述

回答:

这个我明白了. 这就是模运算的定义. 对于一个模 M 的系统, 对于任意 x ( x 为整数来说 ) x 与 x + n*M ( n 为自然数 ) 同余. 如:M = 10. -1 mod 10 = (-1 + 10 ) mod 10 = 9. 同理, (-1 - 10) mod 10 也与之同余. 但是文中需要保持 z' 是一个正数, 所以取 n = 1, 也就是 z 与 z + 2^w 同余.

以上是 Csapp,二的补加法的问题 的全部内容, 来源链接: utcz.com/p/195882.html

回到顶部