文档章节

int类型过大变成负数

tryme
 tryme
发布于 2017/09/08 11:35
字数 330
阅读 492
收藏 0

精选30+云产品,助力企业轻松上云!>>>

计算机存储系统使用补码标识,int类型占32位,首位是符号位:0表示正数,1表示负数。

  • 正数补码与原码相同
  • 负数补码除符号位其余各位与原码取反,然后加1

最近工作看到一个之前的人写的日期工具类,本来想用Apache的commons包的DateUtils工具类,但是没有找到想要的方法,转而求其次使用封装的工具类,结果遇到一个问题。

        需求:给定一个Date对象,找到特定天数后的日期时间

工具类的方法代码是这样写的:

public static Date datetimeAddDay(Date datetime, int day) {
	datetime.setTime(datetime.getTime() + day * 24 * 60 * 60 * 1000);
	return datetime;
}

猛的一看,并没有什么不对,结果运行时日期不对,写个测试类跑了一下,大吃一惊!!!

@Test
public void testDatetimeAddDay() {
    Date datetime = new Date();
    System.out.println("当前时间:" + datetime);
    Date datetimeAddDay = DateUtil.datetimeAddDay(datetime, 30);
    System.out.println("30天后:" + datetimeAddDay);
}

运行结果:

这时间还给我倒回去了,原来是工具类的方法加的毫秒数超过int类型最大值了 2的31次方-1,符号位成了1,整体变为负数。所以工具类中运算的毫秒数使用long类型即可!!!

上一篇: Jenkins安装
tryme
粉丝 2
博文 8
码字总数 2059
作品 0
海淀
程序员
私信 提问
加载中
请先登录后再评论。
溢出之后的值

学习C语言过程中打过这样一串代码: #include<stdio.h> int main(){ } 出现如下情况: 当然,我知道数值过大会溢出,但为什么溢出后会是这些值,最后一直0循环,我不知道,最后在“编程中国”...

osc_gay6i4ve
2019/03/05
0
0
计算机原码反码补码

计算机中保存的数据都是按照补码来保存,涉及到的概念,原码反码补码具体是什么,通过下面几个例子来说明下。 正数 正数的原码,反码和补码是一样的。正数的原码,其最高位代表符号位,1代表...

osc_m9b5s62g
2019/08/02
1
0
signed char类型取值范围计算

在C语言程序中,给定一个类型,如何计算这个类型变量的取值范围呢?比如有一个字符型变量定义如下: signed char c; 这个字符变量c的取值范围是【-128,127】,是计算出来的呢? 假设字符型变...

simsderfbh
2019/07/20
6
0
byte&oxff之格式转换原理解析

最近需要一个将字节数组转换为十六进制字符串输出的函数,于是开始编码如下: 1 2 3 4 5 6 7 8 9 10 11 运行测试,一旦遇到负数总出现未可预料的结果,如参数为{-125,125,115,89}时,运行...

zmx729618
2017/12/13
0
0
你真的了解Java中的负数?

转载请注明joymufeng,欢迎来访PlayScala社区 下面这行代码的输出是什么? 下面两行代码的输出相同吗? 请尝试在Eclipse中运行上面的两个代码片段,如果你对输出结果感到很惊讶,请继续往下读...

joymufeng
2013/06/23
1.5W
8

没有更多内容

加载失败,请刷新页面

加载更多

在Python中从字符串转换为布尔值? - Converting from a string to boolean in Python?

问题: Does anyone know how to do convert from a string to a boolean in Python? 有谁知道如何在Python中从字符串转换为布尔值? I found this link . 我找到了此链接 。 But it doesn't......

javail
今天
19
0
中国饭店协会数据表明

记者了解到,中国饭店协会数据表明,2018年全国餐饮收入42716亿元,同比增长9.5%.根据国家统计局数据显示,截至2017年底,限额以上餐饮行业的从业人数达到2232万人,巨大的餐饮市场背后,餐饮行业的...

asd369
今天
35
0
OSChina 周六乱弹 —— 日本的丧尸光天化日之下都开始……

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《風の手枕》- 増田俊郎 手机党少年们想听歌,请使劲儿戳(这里) @码界农民工 :...

小小编辑
今天
55
0
Hacker News 简讯 2020-07-11

更新时间: 2020-07-11 04:01 Investors say agroforestry is climate friendly and also profitable - (mongabay.com) 投资者表示,农林复合林对气候友好,而且也有利可图 得分:86 | 评论:52...

FalconChen
今天
163
0
是否有可能从另一个git存储库中挑选一个提交? - Is it possible to cherry-pick a commit from another git repository?

问题: I'm working with a git repository that needs a commit from another git repository that knows nothing of the first. 我正在使用一个git存储库,需要从另一个不知道第一个存储库......

技术盛宴
昨天
41
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部