使用pow()进行除法溢出
Division overflow using pow()
Q = (a_i + b_i) / (2^s)
-10^10 ≤ s ≤ 10^10
1 ≤ a_i, b_i ≤ 10^9
It is guaranteed that -10^10 ≤ Q ≤ 10^10.
Here s,a_i,b_i are integers and Q is a decimal no.
在计算Q时,由于2^s的值太大,导致溢出。我用pow(2,s)来计算2^s。我如何计算Q,给定语句中Q的取值范围。
根据您的陈述,我假设Q
是十进制,这涉及浮点运算而不是整数运算。
如果由于某种原因不能使用对数,较慢的方法是计算一个值等于a_i + b_i
的浮点值。如果s
为正,只需将该值s
乘以2
(在一个循环中)。如果s
为负,则乘而不是除。
对于任意a_i
和b_i
,您仍然有溢出(当s
为负)或下溢(s
为正)的风险,并且需要管理它。但是,您声称有保证情况并非如此.....
相关文章:
- 'short int'持有的值溢出,但"自动"不会溢出?
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 大于65535的C++数组[size]引发不一致的溢出
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- C++中无符号字符溢出
- 在除法中不需要四舍五入
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的 int main() 中出现堆栈溢出错误
- 整数溢出,最大值为 pow(10,19)
- 获取隐式转换溢出从无符号到已签名的警告
- 使用 strcat 获取缓冲区溢出错误
- 在TFHE(完全快速同态加密)上执行除法
- 使用 int 表示浮点除法 C++
- c++ 的除法的其余部分出现"堆栈溢出"异常
- 如何避免pow函数用数字除法时出现整数溢出
- 为什么我的长长溢出/变成负的整数除法
- 使用pow()进行除法溢出
- 做一个可能溢出的乘法然后用除法验证
- 整数除法溢出
- 避免整数乘法后除法溢出