java int相除向上取整_每天AC系列(十三):两数相除

本文探讨了在Java中计算两数相除时如何避免溢出问题,通过分析溢出原因、转换负数处理、翻倍与移位优化,以及递归方法,提供了解决方案。在处理溢出时,通过判断被除数和除数的正负,结合位移运算符,可以提高计算效率。
摘要由CSDN通过智能技术生成

1 题目

Leetcode第29题​leetcode-cn.com

计算两数相除的商,不允许使用乘法,除法,求模运算符。

6c9989b5afdbe762cc6921b923a367e7.png

2 减法

首先判断结果是否需要加上负号,将商置为0后,被除数不断减去除数,同时商自增。最后根据是否有负号返回相应的商。

boolean 

3 思考

3.1 溢出

404e06115c6f533461049d3259e82784.png

-2147483648与2147483647这两个数,是4字节的int的最小值与最大值,在java中,它们可用Integer.MIN_VALUE与Integer.MAX_VALUE表示,当一个int为Integer.MIN_VALUE时,取反也是这个数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值