我想计算(a+b)/pow(2,s)
。
-10^10 ≤ s ≤ 10^10
1 ≤ a, b ≤ 10^9
但即使我将结果存储在long long
中,它也会给出0.如果答案位于long
的范围内,我如何计算结果?
答案 0 :(得分:1)
你不需要分裂......除以2的幂只是一个右移。
答案 1 :(得分:0)
您可以使用std::bitset<log2(10^9)>
手动计算总和,然后在结果上调用operator>>=( s )
并获取std:bitset::to_ulong()