gpt4 book ai didi

c - 哪种 C 数据类型可以表示 40 位二进制数?

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

我需要表示一个 40 位二进制数。应使用哪种 C 数据类型来处理此问题?

最佳答案

如果您使用的是 C99 或 C11 兼容编译器,请使用 int_least64_t以获得最大的兼容性。或者,如果你想要一个无符号类型,uint_least64_t .这些都在 <stdint.h> 中定义

<stdint.h>通常还定义 int64_t ,但由于标准不要求它,因此可能不会在每个实现中都定义它。然而:

  • int_least64_t - 至少 64 位,并且
  • int_fast64_t - 至少 64 位的实现中最快的大小

都需要出现在 C99 和 C11 中(参见 C99 标准中的 § 7.18.1.2-3 和 C11 标准中的 § 7.20.1.2-3)。


尽管 C99 指定 long longat least 64 bits on a particular machine (§ 5.2.4.2.1), <stdint.h> 中的类型被设计成可移植的。

您可以阅读有关不同平台上整数大小的更多信息 here .请注意,整数类型的大小是 long 的一个问题。数据类型 - 在 64 位 Windows 上,它目前是 32 位,而在 64 位 linux 上它是 64 位。出于这个原因,我相信你使用 <stdint.h> 中的类型是最安全的。

值得注意的是,有些人认为 long long更具可读性。就个人而言,我更喜欢 <stdint.h> 中的类型, 因为它们允许你在使用它们时说出你的意思——我觉得这更具可读性。当然,可读性通常是个人喜好问题——如果您使用的是现有代码库,我会按照他们所做的去做:)


如果你的编译器只支持 C89,那么 R..'s solution最多允许 53 位整数精度。

关于c - 哪种 C 数据类型可以表示 40 位二进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9595225/

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