Java中Integer类型数据溢出的原因分析

背景:某个场景是需要将时间戳格式化为日期;采用的方案是将时间戳转换为毫秒再格式化成日期,先把时间戳乘以1000转换成毫秒,再通过Date格式化为日期,时间戳的数据类型是Integer;转换后的日期确是1969年;

原因分析:Integer类型占4字节,每个字节占8位二进制码,因此Integer类型总共占32位二进制码,去除首位的符号位,剩下31位则用来表示数值,所以Integer的取值范围是2^31次方即-2147483648至2147483647;Long类型占8字节,取值范围是2^63次方即-9223372036854775808至9223372036854775807;Byte类型占1字节,取值范围是2^7次方即-128至127;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容