java数据类型强制转换问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:52:07
class Conversion {
public static void main(String args[]) {
byte b;
int i = 257;
b = (byte) i;
System.out.println(b);
}
}

d怎么变成1了?

byte是8位的,最大值是256,
int是32位的,

257表示成二进制的时候,是
100000001,
如果int的强制类型转换成byte型,则要取低8位,也就是要把,其余的位丢掉。
所以,257强制类型转换成byte的时候,只能留下00000001,也就是1 了

原始数据类型可以通过 强制转换(type)

原始数据类型 和 对象 之间的转换(其实不是转换了)可以通过wrapper classes ,就象楼上举的例子Integer,Double,Integer....

2楼说的后面是正确的,但是前面错了,byte的最大值是127既01111111,因为最高位那个2进制数是用来表示符号的,即1表示是负数,0表正数,后面的就跟他说的一样了,其他整数类型也一样。

byte类型的数据是从-128到127,也就是说如果是可以表示0到255的数,int型的0到127表示成byte型的0到127,int型的128-255表示成byte型的-128到-1,从266开始归0,继续重复上面的步骤。

正解LZ.

二楼的已经说得非常清楚了?