小编use*_*149的帖子

有效地计算两个数之和的模数

我有三个N位号,A,B,和C.我不能轻易计算,(A + B) % C但我可以轻松计算A % CB % C.如果模运算是无符号的,并且我提前知道A + B没有包围N位,那么我可以改为计算((A % C) + (B % C)) % C.但是,是否可以对模数操作签名或添加AB可能导致环绕的情况执行任何操作.

看起来可能存在一些混淆,为什么((A % C) + (B % C)) % C不能依赖它始终工作.这是一个未签名的示例:

unsigned A = 0x1U;
unsigned B = 0xFFFFFFFFU;
unsigned C = 0x3U;
((A % C) + (B % C)) % C == 0x1U but (A + …
Run Code Online (Sandbox Code Playgroud)

c math modulo number-theory

6
推荐指数
1
解决办法
1115
查看次数

标签 统计

c ×1

math ×1

modulo ×1

number-theory ×1