儿童脚上起红疙瘩很痒:请问这看看这段代码

来源:百度文库 编辑:高考问答 时间:2024/05/04 15:50:25
public class SimpleTest
{
public static void main (String [] arg)
{
short a = 255;
byte c = (byte) a;
System.out.println(c);
}

}
代码的结果是-1,为什么会这样?
楼上的能否再具体点,我菜鸟。

输出的最后结果是C System.out.println(c);
然后啊的初试值是 short a = 255;
但中间的语句将其属性变为 byte 然后赋予 C
byte c = (byte) a;

java的基础语言吧,看看书就知道所有的意思了~

假如按16进制看Byte只有一位

你的short a=255最后留给bit里的就是11111111,这个数就是-1

你的short a=254 它就是-2

byte是一个字节,它认为是有符号数,0xFF无符号是255,有符号就是-1