Skip to content

Commit f665a46

Browse files
author
Ravi Sadam
committed
Fix incorrect reversal in reverse_bits
1 parent 7a0fee4 commit f665a46

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

bit_manipulation/reverse_bits.py

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
def get_reverse_bit_string(number: int) -> str:
22
"""
3-
return the bit string of an integer
3+
Take in an 32 bit integer, reverse its bits,
4+
return a string of reversed bits
45
56
>>> get_reverse_bit_string(9)
67
'10010000000000000000000000000000'
@@ -26,36 +27,36 @@ def get_reverse_bit_string(number: int) -> str:
2627
return bit_string
2728

2829

29-
def reverse_bit(number: int) -> str:
30+
def get_reverse_bit_int(number: int) -> int:
3031
"""
3132
Take in an 32 bit integer, reverse its bits,
32-
return a string of reverse bits
33+
return a 32 bit integer of reversed bits
3334
34-
result of a reverse_bit and operation on the integer provided.
35+
result of a get_reverse_bit and operation on the integer provided.
3536
36-
>>> reverse_bit(25)
37-
'00000000000000000000000000011001'
38-
>>> reverse_bit(37)
39-
'00000000000000000000000000100101'
40-
>>> reverse_bit(21)
41-
'00000000000000000000000000010101'
42-
>>> reverse_bit(58)
43-
'00000000000000000000000000111010'
44-
>>> reverse_bit(0)
45-
'00000000000000000000000000000000'
46-
>>> reverse_bit(256)
47-
'00000000000000000000000100000000'
48-
>>> reverse_bit(-1)
37+
>>> get_reverse_bit_int(25)
38+
2550136832
39+
>>> get_reverse_bit_int(37)
40+
2751463424
41+
>>> get_reverse_bit_int(21)
42+
2818572288
43+
>>> get_reverse_bit_int(58)
44+
1543503872
45+
>>> get_reverse_bit_int(0)
46+
0
47+
>>> get_reverse_bit_int(256)
48+
8388608
49+
>>> get_reverse_bit_int(-1)
4950
Traceback (most recent call last):
5051
...
5152
ValueError: the value of input must be positive
5253
53-
>>> reverse_bit(1.1)
54+
>>> get_reverse_bit_int(1.1)
5455
Traceback (most recent call last):
5556
...
5657
TypeError: Input value must be a 'int' type
5758
58-
>>> reverse_bit("0")
59+
>>> get_reverse_bit_int("0")
5960
Traceback (most recent call last):
6061
...
6162
TypeError: '<' not supported between instances of 'str' and 'int'
@@ -77,7 +78,7 @@ def reverse_bit(number: int) -> str:
7778
number = number >> 1
7879
# add that bit to our ans
7980
result = result | end_bit
80-
return get_reverse_bit_string(result)
81+
return result
8182

8283

8384
if __name__ == "__main__":

0 commit comments

Comments
 (0)