首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java0xffffffff为什么表示为-1

Java0xffffffff为什么表示为-1

作者头像
全栈程序员站长
发布2022-08-29 13:36:08
发布2022-08-29 13:36:08
1.2K0
举报

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript
复制
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。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145635.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档