容易忽视的细节——java基本数值类型取值范围的影响
容易忽视的细节——java基本数值类型取值范围的影响
qq52378628 发表于1年前
容易忽视的细节——java基本数值类型取值范围的影响
  • 发表于 1年前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

如下代码,执行test()函数后,屏幕打印结果为?

public class Test2
{
       public void add(Byte b)
       {
             b = b++;
       }
       public void test()
       {
             Byte a = 127;
             Byte b = 127;
             add(++a);
             System.out.print(a + " ");
             add(b);
             System.out.print(b + "");
       }
       public static void main(String[] args) {
		new Test2().test();
	}
}

程序的输出结果为

-128 127

原因:

java字节型byte的取值范围是-128~127(-2⁷~2⁷-1)。

127的2进制表示为‭01111111‬  加1后就是10000000‬

根据补码的定义,最高位为符号位,128(补码的真值)= 256(2⁸) -  |-128(原码)|

在计算机中表示时是补码10000000‬,输出时却是原码-128

共有 人打赏支持
粉丝 0
博文 5
码字总数 1754
×
qq52378628
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: