【发布时间】:2019-01-17 02:53:26
【问题描述】:
我在这里遇到一个问题,要求我显示一个变量可以存储的最小值和最大值,包括:Short、Integer、Long 和 Float。我应该用比正确答案少一的方式初始化它,然后给它加 1 以证明变量没有出错。 示例。
short srtMaximum = 32766;
srtMaximum += 1;
System.out.print(”Max value for short is “ + srtMaximum);
我应该为 C 和 Java 做这个。 Java我没问题。 短是-32768, 32767 整数为 -2,147,483,648、2,147,483,647 长 -9quintillionL, 9 quintillionL 浮动是我不记得的东西
但是我对 C 感到困惑。
短似乎是一样的。
但是 Long 只能保持与 Int 相同的值吗?
文档说 int 有时只能是 -32768 - 32767?
我不知道如何用花车来做这个项目。无论我为浮点数分配什么值来测试它,它都会在 printf 中打印出不同的东西
【问题讨论】:
-
也许您正在寻找
c的long long? -
(java)
Integer.MAX_VALUE...怎么样? -
在 Java 中,数字类型在任何地方都是固定大小的。因此存在诸如
Integer.MAX_VALUE和Integer.MIN_VALUE之类的常量。如果内存服务,在 C 中,每种类型的最小大小为 specified,因此没有直接比较。 -
一般在 C 中,
sizeof(char) <= sizeof(short)、sizeof(short) <= sizeof(int)、sizeof(int) <= sizeof(long)和sizeof(long) <= sizeof(long long)。 C 规范说sizeof(char)将总是 等于1, and thatlong long` 至少是 64 位类型。您可以使用<stdint.h>和<limits.h>找到当前实现/目标的the limits -
C 中的限制取决于平台。 Java 中的限制是由语言而不是平台指定的。