本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
cs:comp_n_arch:courses:fnti_i:week_2 [2025/04/08 14:15] – [Add16:Carry-ahead] codinghare | cs:comp_n_arch:courses:fnti_i:week_2 [2025/04/08 14:28] (当前版本) – [其他实现上的一些细节] codinghare | ||
---|---|---|---|
行 186: | 行 186: | ||
* 如果参与计算的 bits '' | * 如果参与计算的 bits '' | ||
* 如果参与计算的 bits 中存在一个 1,且前一位的 carry bit '' | * 如果参与计算的 bits 中存在一个 1,且前一位的 carry bit '' | ||
- | 这里的第一部分被称为 // | + | 这里的第一部分('' |
- | $$C_{i+1} = G_{i}(P_{i} ∧C_{i}}$$ | + | $$C_{i+1} = G_{i}∨(P_{i} ∧C_{i})$$ |
+ | 利用这个公式,我们可以对每一位的 $C_i$ 进行展开。也就是说,只要已知所有的 '' | ||
+ | 比如第二位的 carry 公式就可以展开为: | ||
+ | $$C_2=G_1∨(P_1∧G_0)∨(P_1∧P_0∧C_0))$$ | ||
+ | ==其他实现上的一些细节== | ||
+ | * '' | ||
+ | * 验证某个输出是否小于 0 只需验证其最高位,比如 '' | ||
+ | * 验证某个输出是否等于 0 需要使用 '' | ||
+ | * 如果有任意 bit 为 1,那么 Or 的结果都为 1。此时输出是不等于 0 的,如果再将其翻转(// | ||
+ | * 反之,按位 Or 全为 0,翻转后结果为 1,说明相等。 |