gpt4 book ai didi

java - 数学操作后的变量类型

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:10:22 25 4
gpt4 key购买 nike

我对 Java 中的变量类型有疑问。如果我有一个 long 变量(称为 x)和一个 int 变量(称为 y),(x/y) 的类型是什么?

我曾尝试使用“instanceof”选项,但它对我没有帮助。

IMO 它很长,但我只是想确定一下。提前致谢!

最佳答案

A long/int 是一个 long,因为加宽规则基本上是任何两个值的结果就它们中的任何一个的范围而言是“最宽的” .类型 byteshortchar 在与另一个数字的任何操作中都被转换为 int。 (但不是像 String + char 这样的字符串)

注意:long % int 也是一个 long,即使它不可能超出 int 的范围 类似地 int/long 是一个 long,即使它只能在 int

的范围内

注意 2:int * int 仍然是一个 int,尽管很有可能发生溢出。

您只能在 Object 实例上使用 instanceof。基元不是实例。


您可能会发现这些方法很有用

public static void main(String... ignored) {
System.out.println("2 / 1L is " + toString(2 / 1L));
}

public static String toString(boolean b) {
return "boolean " + b;
}

public static String toString(byte b) {
return "byte " + b;
}

public static String toString(char x) {
return "char " + x;
}

public static String toString(short x) {
return "short " + x;
}

public static String toString(int x) {
return "int " + x;
}

public static String toString(long x) {
return "long " + x;
}

public static String toString(float x) {
return "float " + x;
}

public static String toString(double x) {
return "double " + x;
}

打印

2 / 1L is long 2

关于java - 数学操作后的变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581642/

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