微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

32 位中 27 最多可以取多少

如何解决32 位中 27 最多可以取多少

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

解决方法

如果你想将 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。

注意整数除法的使用,我认为这是您想要的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。