二进制负数 正数的十进制对应。负数转换成十进制负数的法则和口诀:
image.png
异或:a^b ab状态不同时=1,相同时=0;
- code
//my Runtime: 16 ms, faster than 97.70% of C
int divide(int dividend, int divisor) {
if (divisor == 0 || (dividend == INT_MIN && divisor ==-1))
return INT_MAX;
long m = abs(( long)dividend), n = abs(( long)divisor), ans = 0;
if (m < n)
return 0;
while (m >= n) {
long cnt = 1, temp = n;
while (m >= (temp << 1)) {
cnt <<= 1;
temp <<= 1;
}
ans += cnt;
m -= temp;
}
return ((dividend < 0) ^ (divisor < 0)) ? -ans : ans;//异或 不一样=1
}






网友评论