Java 变量转换

标签 java variables casting byte

我有一个关于在 java 中转换变量的问题。 我有以下代码

    byte b1 = 6;
    byte b2 = 5;
    byte bsum;
    bsum = (b1 + b2); // (1)

代码需要的内容是:

   byte b1 = 6;
   byte b2 = 5;
   byte bsum;
   bsum = (byte)(b1 + b2); // (2)

为什么在(1)情况下 Eclipse 说无法从 int 转换为 byte ?当字节变量最多可以占用 127 时,为什么 b1 + b2 会转到 int ?我很困惑..

感谢您的宝贵时间!

最佳答案

作者:specification + 运算符返回一个 int,这就是您需要进行强制转换的原因。

(1) 表示 b1 + b2 不能分配给 byte,因为 int 的范围比字节

关于Java 变量转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26242674/

相关文章:

c++ - vector 中的未知变量列大小

python - 输入列表并查找相同输入 python 的最长连胜

c++ - 使用可变参数将函数转换回原始签名

java - 函数没有改变值 - JAVA 6 SE

php - 在 PHP 中定义可在所有文件中使用的全局常量的最佳方法是什么?

java - 在Java中,如何在不调用mousePressed和mouseReleased的情况下使用mouseClicked?

c++ - Visual Studio C++ 将 CSV 文件中的数据输入变量数组

java - 如何修复不同接口(interface)的泛型中的 "Unchecked cast"

java - 代号一错误 java.lang.NoSuchMethodError : javafx. scene.web.WebEngine.setUserDataDirectory(Ljava/io/File;)V

java - 在调试时对旧代码进行注释/注释而不进行更改