Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc874e3e

Browse files
committed
divide
1 parent22cbf1a commitc874e3e

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

‎binarySearch/Divide.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
packageAlgorithms.binarySearch;
2+
3+
publicclassDivide {
4+
publicintdivide(intdividend,intdivisor) {
5+
longa =Math.abs((long)dividend);
6+
7+
// ref : http://blog.csdn.net/kenden23/article/details/16986763
8+
// Note: 在这里必须先取long再abs,否则int的最小值abs后也是原值
9+
longb =Math.abs((long)divisor);
10+
11+
intret =0;
12+
// 这里必须是= 因为相等时也可以减
13+
while (a >=b) {
14+
// 判断条件是 >=
15+
for (longdeduce =b,cnt =1;a >=deduce;deduce <<=1,cnt <<=1) {
16+
a -=deduce;
17+
ret +=cnt;
18+
}
19+
}
20+
21+
// 获取符号位。根据除数跟被除数的关系来定
22+
return (dividend >0) ^ (divisor >0) ? -ret:ret;
23+
}
24+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp