b的值是10 i == 266 == 0x010A; b 截取后面一个字节,就是0x0A,也就是10了
jamesfancy(▲) 边城狂人 <Java|C++] (★) ( ) 信誉:116 Blog 不是已经说得很清楚了么?
我也不大懂,反正你调一下不就答案出来了吗? public class b { public static void main (String[] args){ byte b; int i=266; b=(byte)i; System.out.print(b); // b的值是10 // i == 266 == 0x010A;16进制 // b 截取后面一个字节,就是0x0A,也就是10了 } }
如果用Eclipse的话,别的IDE我不知道,凡是显示的赋值,比如说,byte b = 232; 是会出错的,当然如果你用运算符它就不知道 byte b = 127,c = b +1;,毕竟这个东西是应该Programmer自己注意的。 所以,给Eclipse做广告,用Eclipse吧,you will like it,^_^。
i == 266 == 0x010A;
b 截取后面一个字节,就是0x0A,也就是10了
public class b {
public static void main (String[] args){
byte b;
int i=266;
b=(byte)i;
System.out.print(b);
// b的值是10
// i == 266 == 0x010A;16进制
// b 截取后面一个字节,就是0x0A,也就是10了
}
}
266 的十六进制形式为 0x10A,取出最低一个字节就是0x0A 也就是 0000 1010,这个翻译成byte就是10,所以你的输出就是10
是会出错的,当然如果你用运算符它就不知道 byte b = 127,c = b +1;,毕竟这个东西是应该Programmer自己注意的。
所以,给Eclipse做广告,用Eclipse吧,you will like it,^_^。
byte 的取值范围是-128到+127之间.
byte是字节型,范围是-128到+127之间.超过这个范围机器默认取最后一个字节.即二进制的最后八信位.够明白了吧.