繁体   English   中英

为什么在Java中必须对字节进行按位运算?

[英]Why do you have to cast a bitwise operation on a byte to a byte in Java?

为什么在这里需要强制转换?

byte a = 0b0000_0000;
byte b = (byte) ~a;

a是字节, b是字节...为什么需要强制转换?

因为Java语言规范这么说

一元数值提升(第5.6.1节)在操作数上执行。 一元按位补码表达式的类型是操作数的提升类型。

否则,如果操作数是编译时类型byteshortchar ,则通过扩展原语转换(第5.1.2节)将其提升为int类型的值。

int类型的值不能分配给byte类型的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM