[mypy] Add/fix type annotations for bit manipulation algorithms
diff --git a/bit_manipulation/binary_and_operator.py b/bit_manipulation/binary_and_operator.py
index f1b910f8cc9b..191ff8eb44a4 100644
--- a/bit_manipulation/binary_and_operator.py
+++ b/bit_manipulation/binary_and_operator.py
@@ -1,7 +1,7 @@
 # https://www.tutorialspoint.com/python3/bitwise_operators_example.htm
 
 
-def binary_and(a: int, b: int):
+def binary_and(a: int, b: int) -> str:
     """
     Take in 2 integers, convert them to binary,
     return a binary number that is the
diff --git a/bit_manipulation/binary_or_operator.py b/bit_manipulation/binary_or_operator.py
index e83a86d6a8bc..dabf5bcb09fd 100644
--- a/bit_manipulation/binary_or_operator.py
+++ b/bit_manipulation/binary_or_operator.py
@@ -1,7 +1,7 @@
 # https://www.tutorialspoint.com/python3/bitwise_operators_example.htm
 
 
-def binary_or(a: int, b: int):
+def binary_or(a: int, b: int) -> str:
     """
     Take in 2 integers, convert them to binary, and return a binary number that is the
     result of a binary or operation on the integers provided.
diff --git a/bit_manipulation/binary_xor_operator.py b/bit_manipulation/binary_xor_operator.py
index 0edf2ba6606d..6f8962192ad8 100644
--- a/bit_manipulation/binary_xor_operator.py
+++ b/bit_manipulation/binary_xor_operator.py
@@ -1,7 +1,7 @@
 # https://www.tutorialspoint.com/python3/bitwise_operators_example.htm
 
 
-def binary_xor(a: int, b: int):
+def binary_xor(a: int, b: int) -> str:
     """
     Take in 2 integers, convert them to binary,
     return a binary number that is the
diff --git a/bit_manipulation/single_bit_manipulation_operations.py b/bit_manipulation/single_bit_manipulation_operations.py
index 114eafe3235b..e4a54028d9ee 100644
--- a/bit_manipulation/single_bit_manipulation_operations.py
+++ b/bit_manipulation/single_bit_manipulation_operations.py
@@ -3,7 +3,7 @@
 """Provide the functionality to manipulate a single bit."""
 
 
-def set_bit(number: int, position: int):
+def set_bit(number: int, position: int) -> int:
     """
     Set the bit at position to 1.
 
@@ -21,7 +21,7 @@ def set_bit(number: int, position: int):
     return number | (1 << position)
 
 
-def clear_bit(number: int, position: int):
+def clear_bit(number: int, position: int) -> int:
     """
     Set the bit at position to 0.
 
@@ -37,7 +37,7 @@ def clear_bit(number: int, position: int):
     return number & ~(1 << position)
 
 
-def flip_bit(number: int, position: int):
+def flip_bit(number: int, position: int) -> int:
     """
     Flip the bit at position.
 

```console
$ mypy --strict bit_manipulation/
Success: no issues found in 7 source files
```

Related Issue: #4052 

### **Describe your change:**



* [ ] Add an algorithm?
* [x] Fix a bug or typo in an existing algorithm?
* [ ] Documentation change?

### **Checklist:**
* [x] I have read [CONTRIBUTING.md](https://github.com/TheAlgorithms/Python/blob/master/CONTRIBUTING.md).
* [x] This pull request is all my own work -- I have not plagiarized.
* [x] I know that pull requests will not be merged if they fail the automated tests.
* [x] This PR only changes one algorithm file.  To ease review, please open separate PRs for separate algorithms.
* [ ] All new Python files are placed inside an existing directory.
* [ ] All filenames are in all lowercase characters with no spaces or dashes.
* [ ] All functions and variable names follow Python naming conventions.
* [x] All function parameters and return values are annotated with Python [type hints](https://docs.python.org/3/library/typing.html).
* [ ] All functions have [doctests](https://docs.python.org/3/library/doctest.html) that pass the automated testing.
* [ ] All new algorithms have a URL in its comments that points to Wikipedia or other similar explanation.
* [ ] If this pull request resolves one or more open issues then the commit message contains `Fixes: #{$ISSUE_NO}`.
