32 位中的 27 最多可以取多少

What is the max number that you can take by 27 in 32 bits

我正在编写代码,将数字乘以 1 到 27。我需要做一个故障安全,没有数字可以超过这个。四舍五入到 2^32/2^64 是行不通的。它需要 32 位,所以它可以同时支持 32 位和 64 位 OS。

如果您想将 3 乘以 5,但知道最大允许结果是 10,您可以很容易地判断出 3 太大,因为 3 > 10/5。仅此而已:)

既然你坚持使用32位类型,我假设你的编程语言是C,那么int32_t可以表示的最大值是INT32_MAX - 这两个来自#include <stdint.h>.

但是您关于仅限于 32 位类型的假设可能是错误的:int64_t 适用于大多数(如果不是全部)主要 32 位平台:)

(2^32/27-1) 不会给你正确的上限值。作为整数,它是 159072861,这太小了。

32位可以存储的最大整数值是2^32 - 1,计算结果为4294967295。

所以最大值实际上是(2^32 - 1) // 27也就是159072862.

请注意整数除法的使用,我假设这就是您想要的。