【问题标题】:How can I store variable having high range in C program?如何在 C 程序中存储具有高范围的变量?
【发布时间】:2019-10-17 16:10:23
【问题描述】:

假设我想存储数据类型为整数的变量。 整数提供一定范围的 2 字节或 4 字节。 范围也是 -32768 到 32767。 我想存储 32768。 我该怎么办?

【问题讨论】:

  • 16 位无符号整数的范围为 0-65536。
  • 使用 long 或 unsigned int。
  • 或使用任何类型为您提供 32 位整数(有符号或无符号)。
  • 一个4字节的int的范围是-2147483648 to 2147483647unsigned的范围是0 to 4294967295
  • 使用标准类型和int32_t

标签: c variables integer


【解决方案1】:

有一种数据类型可以保证在所有 C 实现中保持该范围。它被称为long int。也许改用那个。

另外 32 位平台通常会有 32 位;这里唯一的区别是 64 位平台,有些平台可能使用 64 位数据类型。

如果存储要求很重要,请使用int32_t

【讨论】:

    【解决方案2】:

    在不同的平台上,ints 在 C 中是不同的大小。有时,就像你说的,它们是 2 个字节,有时是 4 个等等。所以如果是 2 个字节,那就是 16 位,所以它可以存储2^16 = 65536 个不同的值。由于您使用的是有符号值,因此这些值的一半是负数,这就是为什么您不能在此处为 int 输入更大的值。但是,如果您使用的是 C99 或更高版本,则可以通过包含 stdint.h 来使用 int32_t。这将允许您存储多达 2^31 - 1 = 2,147,483,647。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      相关资源
      最近更新 更多