遇到的int型数字越界的情况

在做一个需求时,需要循环减去24*60*60*1000*30,在实际测试过程中当最后的数字30到25时就出现了错误,减的结果比减之前的数还大,检查了下发现在到25时整个减数的数值变为负数了,负负得正,减变成了加。


造成这种情况的原因是当最后的数字达到25时,整个常数的数字位数已超过了int型数据类型的最大位数,变成了负数。这时如果可以预见自己最大所需的数字是多少可以合理对这个数字表达式进行强转,转成位数更大的数据类型,如:(long)24*60*60*1000*30 即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能06H 功能描述:设置闹钟 入口参数:AH=06H CH=BCD码格式的小时 CL=BCD码格式的分钟 DH=BCD码格式的秒 出口参数:CF=0——操作成功,否则,闹钟已设置或时钟已停止 (8)、功能07H 功能描述:闹钟复位 入口参数:AH=07H 出口参数:无 (9)、功能0AH 功能描述:读取天数计数,仅在PS/2有效,在此从略 (10)、功能0BH 功能描述:设置天数计数,仅在PS/2有效,在此从略 (11)、功能80H 功能描述:设置声音源信息 入口参数:AH=80H AL=声音源 =00H——8253可编程计时器,通道2 =01H——盒式磁带输入 =02H——I/O通道上的"Audio In" =03H——声音产生芯片 出口参数:无 8、直接系统服务(Direct System Service) INT 00H —“0”作除数 INT 01H —单步中断 INT 02H —非屏蔽中断(NMI) INT 03H —断点中断 INT 04H —算术溢出错误 INT 05H —打印屏幕和BOUND越界 INT 06H —非法指令错误 INT 07H —处理器扩展无效 INT 08H —时钟中断 INT 09H —键盘输入 INT 0BH —通信口(COM2:) INT 0CH —通信口(COM1:) INT 0EH —磁盘驱动器输入/输出 INT 11H —读取设备配置 INT 12H —读取常规内存大小(返回值AX为内存容量,以K为单位) INT 18H —ROM BASIC INT 19H —重启动系统 INT 1BH —CTRL+BREAK处理程序 INT 1CH —用户时钟服务 INT 1DH —指向显示器参数表指针 INT 1EH —指向磁盘驱动器参数表指针 INT 1FH —指向图形字符模式表指针

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值