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
评论 打赏 举报解决 2无用
java中byte+int未必等于int!!例如:byte z = (byte)0b11111111 + 0b00000001;请问z为什么是0
0b1111 1111如果赋值给单字节型变量,那么值就是-1,因为编译器会把0b 1111 1111 当成单字节型常量,0b1111 1111 相当于-1的补码,所以为-1 加上1值就是0