/*
byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少?
练习: byte b = 300;
*/
class DataType6{
public static void main(String[] args){
//因为byte的范围是:-128到127.
//130不在此范围内,所以报错。
//byte b = 130;
//可以使用强制类型转换
byte b = (byte)130;
//结果是多少?
System.out.println(b);
}
}
/*
分析:
我们要想知道结果是什么,应该知道计算机如何计算
计算机中的计算是以补码的形式进行的
所以需要该数的补码,先计算二进制
A:130的二进制是:
00000000 00000000 000000000 10000010
这是130的原码,反码和补码
B:做截取操作,截成byte类型
10000010
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010
反码: 1 0000001
原码: 1 1111110
所以130是127
Java数据类型练习
最新推荐文章于 2024-07-14 10:29:57 发布