pass0608sc1 2016-05-27 07:31 采纳率: 0%
浏览 4589

二进制加法,(byte)0b11111111为什么等于-1

java中byte+int未必等于int!!例如:byte z = (byte)0b11111111 + 0b00000001;请问z为什么是0

  • 写回答

1条回答 默认 最新

  • 侦探蜡笔小新 2016-05-27 07:47
    关注

    0b1111 1111如果赋值给单字节型变量,那么值就是-1,因为编译器会把0b 1111 1111 当成单字节型常量,0b1111 1111 相当于-1的补码,所以为-1 加上1值就是0

    评论

报告相同问题?