下面这段python代码是我在problem statement over here中找到的
给定两个整数a和b,不使用乘除和模运算符将两个整数相除,不使用乘除和模运算符求a除以b后的商。
sign = (-1 if((dividend < 0) ^
(divisor < 0)) else 1);
发布于 2019-02-20 04:26:06
^
是一个异或运算,但是它没有逻辑上的异或运算。这段代码利用了True == 1
和False == 0
这一事实,因此使用按位异或具有相同的效果。(例如,True ^ False == 1 ^ 0 == 1 == True
。)
使用常规短路and
和or
,然后测试(带冗余括号)将如下所示
sign = -1 if (dividend < 0 and divisor > 0) or (dividend > 0 and divisor < 0) else 1
发布于 2019-02-20 04:28:40
这是一个按位XOR运算符。有关XOR的更多信息,请参阅here。
https://stackoverflow.com/questions/54774342
复制相似问题