[英]division of two very large numbers
我想计算(a+b)/pow(2,s)
。
-10^10 ≤ s ≤ 10^10
1 ≤ a, b ≤ 10^9
但是,即使我将结果存储在long long
它也将给出0。如果答案在long
范围内,那么如何计算结果?
为此,您不需要除法...除以2的幂只是一个右移。
您可以使用std::bitset<log2(10^9)>
手动计算总和,然后对结果调用operator>>=( s )
并通过std:bitset::to_ulong()
获得long
您可以使用boost cpp_int ,这是最简单的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.