我初始化了一个字节如下:
byte b = (byte) 0b11110000000;
Run Code Online (Sandbox Code Playgroud)
由于一个字节是8位大小,我期望它会抛出一些异常或错误,因为这个数字应该只能分配给short或者以上.它还评估为-124?或者这可能是"正常"行为?(没有异常抛出,但变量溢出)?
你应该得到-128.
当您显式地转换为intto时byte,将获取最低的8位,其余的将被丢弃.
在您的示例中,最低的8位是10000000,并且该数字的十进制值是-128.
如果没有显式强制转换,代码将不会通过编译,因为您的分配会导致信息丢失.