gpt4 book ai didi

java - 与哪些变量运算符 >> 兼容

转载 作者:行者123 更新时间:2023-12-04 00:33:43 29 4
gpt4 key购买 nike

我这里的代码很少

int b=3;
b=b >> 1;
System.out.println(b);

它工作得很好,但是当我将变量 b 更改为 byte、short、float、double 时它包含错误,但是对于变量 int 和 long 它工作得很好,为什么它不能与其他变量一起工作?

最佳答案

位移运算符,例如 >>,与任何整数类型兼容。然而,对于像 byteshort 这样的较小类型,该操作执行扩大转换:结果被提升为 int 类型,因此不能重新分配回源类型。

因此,以下内容是合法的:

byte b = 3;
b = b >> 1;

但是这些赋值合法的:

byte b = 3;
b = (byte)(b >> 1)
int c = b >> 1;

至于为什么这些运算符不能与 floatdouble 一起使用,我将留给您探索。提示:考虑 layout of those types in memory以及对位移运算符的影响。

关于java - 与哪些变量运算符 >> 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19941232/

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