-2

假设我有以下代码行:

整数 = b/2;

其中 b 是一个奇数整数。会发生什么?

另外,如果 b 是 long,java 会自动将这个 long 转换为 int 吗?如果 b 是一个字符或其他可笑的东西怎么办?

4

3 回答 3

4

Java 会自动扩展类型,但您必须自己使用强制类型转换来缩小类型。

我建议您自己尝试一下,因为您可能会学到一些东西。如果没有在某个时候实际进行编程,您就无法学习编程。

于 2013-05-04T06:38:33.800 回答
0

它将返回 b/2 的整数值,例如如果 b=3 那么 b/2 将返回 1。但是如果 b 是长变量,比如 long b=3,那么它将返回一个错误,说明可能丢失精度。

于 2013-05-04T06:42:57.580 回答
0

整数相除会产生一个向 0 舍入的整数。当您开始混合类型时,这取决于它们是需要扩大(将自动发生)还是缩小(在大多数情况下不会自动发生)。

有关除法的更多详细信息,请参见Java 语言规范 15.17.2。除法运算符 /和用于缩小和扩大Java 语言规范第 5 章。转换和提升

但我认为在你的 Java 程序中尝试和试验是一种比阅读规范更好的理解方式。编写一个小测试程序不会破坏任何东西。

于 2013-05-04T06:59:11.610 回答