|
1 |
| -def get_reverse_bit_string(bn : int) -> str: |
2 |
| - """ return the bit string of an interger |
| 1 | +def get_reverse_bit_string(number: int) -> str: |
3 | 2 | """
|
| 3 | + return the bit string of an integer |
| 4 | +
|
| 5 | + >>> get_reverse_bit_string(9) |
| 6 | + '10010000000000000000000000000000' |
| 7 | + >>> get_reverse_bit_string(43) |
| 8 | + '11010100000000000000000000000000' |
| 9 | + >>> get_reverse_bit_string(2873) |
| 10 | + '10011100110100000000000000000000' |
| 11 | + >>> get_reverse_bit_string("this is not a number") |
| 12 | + Traceback (most recent call last): |
| 13 | + ... |
| 14 | + TypeError: operation can not be conducted on a object of type str |
| 15 | + """ |
| 16 | + if not isinstance(number, int): |
| 17 | + raise TypeError( |
| 18 | + "operation can not be conducted on a object of type " |
| 19 | + f"{type(number).__name__}" |
| 20 | + ) |
4 | 21 | bit_string = ""
|
5 |
| - for trk in range(0, 32): |
6 |
| - bit_string += str(bn % 2) |
7 |
| - bn = bn >> 1 |
| 22 | + for _ in range(0, 32): |
| 23 | + bit_string += str(number % 2) |
| 24 | + number = number >> 1 |
8 | 25 | return bit_string
|
9 | 26 |
|
10 | 27 |
|
11 |
| -def reverse_bit(n: int) -> str: |
| 28 | +def reverse_bit(number: int) -> str: |
12 | 29 | """
|
13 | 30 | Take in an 32 bit integer, reverse its bits,
|
14 | 31 | return a string of reverse bits
|
@@ -42,26 +59,27 @@ def reverse_bit(n: int) -> str:
|
42 | 59 | ...
|
43 | 60 | TypeError: '<' not supported between instances of 'str' and 'int'
|
44 | 61 | """
|
45 |
| - if n < 0: |
| 62 | + if number < 0: |
46 | 63 | raise ValueError("the value of input must be positive")
|
47 |
| - elif isinstance(n, float): |
| 64 | + elif isinstance(number, float): |
48 | 65 | raise TypeError("Input value must be a 'int' type")
|
49 |
| - elif isinstance(n, str): |
| 66 | + elif isinstance(number, str): |
50 | 67 | raise TypeError("'<' not supported between instances of 'str' and 'int'")
|
51 |
| - ans = 0 |
| 68 | + result = 0 |
52 | 69 | # iterator over [1 to 32],since we are dealing with 32 bit integer
|
53 |
| - for i in range(1, 33): |
| 70 | + for _ in range(1, 33): |
54 | 71 | # left shift the bits by unity
|
55 |
| - ans = ans << 1 |
| 72 | + result = result << 1 |
56 | 73 | # get the end bit
|
57 |
| - k = n % 2 |
58 |
| - # right shif the bits by unity |
59 |
| - n = n >> 1 |
| 74 | + end_bit = number % 2 |
| 75 | + # right shift the bits by unity |
| 76 | + number = number >> 1 |
60 | 77 | # add that bit to our ans
|
61 |
| - ans = ans | k |
62 |
| - return get_reverse_bit_string(ans) |
| 78 | + result = result | end_bit |
| 79 | + return get_reverse_bit_string(result) |
63 | 80 |
|
64 | 81 |
|
65 | 82 | if __name__ == "__main__":
|
66 | 83 | import doctest
|
| 84 | + |
67 | 85 | doctest.testmod()
|
0 commit comments