Java0xffffffff为什么表示为-1

int i = 0xffffffff;
System.out.println(i);    输出-1

上面的程序有个问题

  1. 为什么int i = 0xffffffff;没有报溢出错误,且输出为-1?

    因为0xffffffff实际是二进制,程序中任何十进制,八进制,16进制的数在计算机底层都是二进制,表示成 X进制只是为了让人看明白,所以0xffffffff在电脑中就是32个1,而不是2的32次方减1。光是有底层表示还不够,语言需要把底层表示解释为高层抽象。在java中,常数默认为int类型(32bits),32个1解释为int就是-1。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部