回 帖 发 新 帖 刷新版面

主题:请教高手!

class Text{
   public static void main(String [] arguments){
         short s=(short)640000;
         System.out.println(s);
        }
}
我想问一下,为什么运行结果会是-15360
这个结果是怎样算出来的。谢谢!

回复列表 (共3个回复)

沙发

short char多是占一个字节,超出范围了,值应该是任意了。要注意!!

板凳

short占用2字节,它存储的数据范围是从-32768到32767。
而你给short类型的变量赋值远远超出了它的存储范围,因此得到的结果是 640000%65536-65536

3 楼


真是高手啊!那我想问一下为什么要取余后要减去65536呢?
谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册