byte b1=67;
byte b2=89;
byte b3=(byte)(b1+b2);我是这么算b3的
b1+b2=151 也就是10011100
byte一个字节,int四个字节
那么把int转换成byte的时候直接把int前面的三个字节去掉就行了呀。可以答案这个时候却是-100。很纠结这个问题,望各位大虾详讲下了哈。谢谢
byte b2=89;
byte b3=(byte)(b1+b2);我是这么算b3的
b1+b2=151 也就是10011100
byte一个字节,int四个字节
那么把int转换成byte的时候直接把int前面的三个字节去掉就行了呀。可以答案这个时候却是-100。很纠结这个问题,望各位大虾详讲下了哈。谢谢
然后才会强转到byte类型,因为你得到int值超过了byte(-128~127)的范围,
67+89=156
所有156-127 = 28
28-128=-100
所有结果是-100。
你可以试一下
System.out.println(b3 & 0x000000FF)
倒是能看到156的正数