mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
20 lines
630 B
Python
20 lines
630 B
Python
#!/usr/bin/python
|
|
''' Set a bit in a binary number:
|
|
1) Shifts 1 over by i bits
|
|
2) make an OR with the number, only the value at bit i will change and all the others bit
|
|
of the mask are zero so will not affect the num
|
|
|
|
'''
|
|
def set_bit(num, i):
|
|
mask = 1 << i
|
|
return bin( num | mask )
|
|
|
|
|
|
if __name__ == '__main__':
|
|
num = int('0100100', 2)
|
|
print set_bit(num, 0) #'0b100101'
|
|
print set_bit(num, 1) #'0b100110'
|
|
print set_bit(num, 2) # nothing change '0b100100'
|
|
print set_bit(num, 3) #'0b101100'
|
|
print set_bit(num, 4) #'0b110100'
|
|
print set_bit(num, 5) # nothing change '0b100100' |