【问题标题】:Is it possible to increase the number of bytes for any datatype?是否可以增加任何数据类型的字节数?
【发布时间】:2012-02-07 15:42:11
【问题描述】:

我系统中 long int 的当前大小是 4 个字节。有可能增加它的尺寸吗?如果无法处理我们需要具有指定字节大小的整数数据类型的情况。应用包括阶乘、排列、组合等。

【问题讨论】:

  • 感谢大家提出替代方法。但我想探索如何定义自己的数据类型。

标签: c int


【解决方案1】:

如何处理需要整数数据类型的情况 指定字节大小

使用stdint.h 类型,如uint24_tuint32_tuint64_t 等。

【讨论】:

  • 如何将它们包含在我的程序中?我想它是我需要包含的一些库?
  • @bubble 你必须包括stdint.h,也许inttypes.h
  • stdint.h 是 C 语言的一部分,除非您使用的 C 编译器已经过时超过 13 年。
  • uint24_t这样的东西吗?
  • @JoniSalonen 一些实现可以拥有它。这些类型都不是标准要求的。我从未遇到过它,但我记得读过它(或者可能只是一些 IRC 讨论,我只关注了一半?)
【解决方案2】:

您可能会发现long long int 大于 4 个字节。由于 CPU 的工作方式,编译器会限制整数类型的大小。

对于任意大小的整数,您必须使用特殊的“bignum”库,例如GMP。您可以在此处找到有关该主题的更多信息:http://en.wikipedia.org/wiki/Bignum

【讨论】:

    【解决方案3】:

    在几乎每个系统上,long long 都是 8 个字节(64 位)。

    【讨论】:

    • 我的系统有 int = long int = 4 字节。不知道long long是否存在。
    • 每个 C 编译器都有long long(可能在嵌入式系统上除外)。
    猜你喜欢
    • 2014-07-12
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多