mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
add numbers different signs algorithm. (#8008)
This commit is contained in:
parent
af8d520922
commit
30277f8590
|
@ -50,6 +50,7 @@
|
||||||
* [Index Of Rightmost Set Bit](bit_manipulation/index_of_rightmost_set_bit.py)
|
* [Index Of Rightmost Set Bit](bit_manipulation/index_of_rightmost_set_bit.py)
|
||||||
* [Is Even](bit_manipulation/is_even.py)
|
* [Is Even](bit_manipulation/is_even.py)
|
||||||
* [Is Power Of Two](bit_manipulation/is_power_of_two.py)
|
* [Is Power Of Two](bit_manipulation/is_power_of_two.py)
|
||||||
|
* [Numbers Different Signs](bit_manipulation/numbers_different_signs.py)
|
||||||
* [Reverse Bits](bit_manipulation/reverse_bits.py)
|
* [Reverse Bits](bit_manipulation/reverse_bits.py)
|
||||||
* [Single Bit Manipulation Operations](bit_manipulation/single_bit_manipulation_operations.py)
|
* [Single Bit Manipulation Operations](bit_manipulation/single_bit_manipulation_operations.py)
|
||||||
|
|
||||||
|
|
39
bit_manipulation/numbers_different_signs.py
Normal file
39
bit_manipulation/numbers_different_signs.py
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
"""
|
||||||
|
Author : Alexander Pantyukhin
|
||||||
|
Date : November 30, 2022
|
||||||
|
|
||||||
|
Task:
|
||||||
|
Given two int numbers. Return True these numbers have opposite signs
|
||||||
|
or False otherwise.
|
||||||
|
|
||||||
|
Implementation notes: Use bit manipulation.
|
||||||
|
Use XOR for two numbers.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def different_signs(num1: int, num2: int) -> bool:
|
||||||
|
"""
|
||||||
|
Return True if numbers have opposite signs False otherwise.
|
||||||
|
|
||||||
|
>>> different_signs(1, -1)
|
||||||
|
True
|
||||||
|
>>> different_signs(1, 1)
|
||||||
|
False
|
||||||
|
>>> different_signs(1000000000000000000000000000, -1000000000000000000000000000)
|
||||||
|
True
|
||||||
|
>>> different_signs(-1000000000000000000000000000, 1000000000000000000000000000)
|
||||||
|
True
|
||||||
|
>>> different_signs(50, 278)
|
||||||
|
False
|
||||||
|
>>> different_signs(0, 2)
|
||||||
|
False
|
||||||
|
>>> different_signs(2, 0)
|
||||||
|
False
|
||||||
|
"""
|
||||||
|
return num1 ^ num2 < 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import doctest
|
||||||
|
|
||||||
|
doctest.testmod()
|
Loading…
Reference in New Issue
Block a user