Byte类型问题

1、byte b = (byte) 130;

      解析:  计算机中数据的运算都是补码进行的。

A:获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010 
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010

反码: 1 0000001

原码: 1 1111110

2.byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4;
   哪句是编译失败的呢?为什么呢?
   解析: b = b1 + b2;是有问题的。
因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章