Java中,byte b=3; b=(byte)(b+200); 输出 b为什么是 —53 ?
展开全部
byte b=3;
//因为byte是一个字节(8位)
//所以范围为(-128----127)
//下面的值超出了他的范围(运雀java存的补码)
//不懂(原码,反码,补码),请自行查阅
byte b1=(byte)(b+124); //0111 1111 :第一位是符号为 127
byte b2=(byte)(b+125); //1000 0000 :-128
//后面的就是每加一位,由于前面有个1,就相当于旁带早 -(128-1)
// 203超出范围行源了,按规则计算就是 -53
//具体详细规则,我也忘了,建议百度
System.out.println(b1);
System.out.println(b2);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询