【Java】基本类型之int(五)
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
例子:int a = 100000, int b = -200000。
下面有一道面试题,可以参考一番:下列代码最终输出结果是多少
public static void main(String[] args) {
int num = 2147483647;
num += 2L;
System.out.println(num);
}
A、-2147483648
B、2147483649
C、-2147483647
D、0
答案是多少呢?如果你不知道int类型的取值范围,有不少小伙伴肯定选择B,因为我就属于无知的一类。基础没有学好,一秒钟不带思考的……答错。正确答案是C:-2147483647
下面解释一下原因:
由于计算机中采用二进制存储数据,2147483647是int存储的最大正数,其+2L,
相当于二进制右侧第二位+1,等于0,向左进1,导致后续的二进制统一+1=0进1,
最终最高位0+1=1变为负数,因为右侧第一位未动为1,则最终结果是最高位和最低位为1,其余都为0,
负数的二进制采用补码形式计算(最高位不变,其余按位取反,
相当于0代表正数1计算,同样1相当正数0计算,符号是负数)
![]()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?