javaSE基础问题

public class Ccc{
    public static void main(String[] args){
        byte b = 126 ;
        ++b;
        System.out.println((++b));
    
    }
}

为什么最后输出-128   不是127  有没有大神帮我解释下  刚开始学习  

 

你删除一个 ++ 就好了,你执行了两次 ++ 所以就变成了 -128

所以,当127+1=128时,超出了存储范围,就变为了-128了

你要看清楚是什么数据类型哦。这个是byte类型,存储的范围是-128~127.

关于存储范围的计算:因为byte是一个字节的,一个字节占8位。计算机系统通过二进制的方式存储数据。所以转为十进制的范围就是

-2^7~2^7-1

如有帮助,望采纳哦。

想了解更多。可以私信我,私下交流。

字节的存储范围是-128~127,而你加了2次 最高位为1就变成-1了。

已解决,望采纳。

因为byte的范围是-128~127

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632