gpt4 book ai didi

c - 32位变量溢出

转载 作者:太空狗 更新时间:2023-10-29 17:20:56 25 4
gpt4 key购买 nike

目前,我正在我的一个应用程序中实现方程 (2^A)[X + Y*(2^B)]

问题是 32 位值溢出,我不能使用 64 位数据类型。

假设当B = 3Y = 805306367时,它溢出了32位值,但是当X = -2147483648时,结果又回来了到 32 位范围。
所以我想存储(Y*2^B)的结果。谁能为此提出一些解决方案.... A 和 B 的值从 -1515X,Y 可以具有 2147483647..-2147483648 中的值。
输出范围可以是 0...4294967295

最佳答案

如果数字对于 32 位变量来说太大,那么您要么使用更多位(通过存储在更大的变量中,或者使用多个变量),要么放弃精度并将其存储在 float 中。由于 Y 可以是 MAX_INT,根据定义,您不能将它乘以大于 1 的数字并且仍然适合 32 位 int。

关于c - 32位变量溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com