Convert an Integer to a Binary Representation
Here is a quick way to convert any integer n into a string that represents the
n integer in binary notation:
def dec_to_bin(n, bits=32):
return ''.join([str((n >> y) & 1) for y in range(bits - 1, -1, -1)])
What's going on in the above code? This can be better explained if we read the
return line in the dec_to_bin function backwards. First we create a list of
integers from 31 to 0 in order to iterate through it. This list is created with
the built-in range function and it uses the number of bits that we passed into
the function, with a default being 32. Next, we iterate through the list with
each number being represented by y. Then we take the number parameter n,
which is the number we want to transform to binary, and we shift its bits to the
right by y places. Then we apply a bitwise and operation on the result of
that right shift and the literal value of 1. This and operation tells us if
the bit at location y is turned on or off. We then make a string out of the
value and append it to the string that we are building to return to the
user. This is a perfect example of Python's conciseness and the power of list
comprehensions.
You can use the code above like so:
>>> print dec_to_bin(255) 00000000000000000000000011111111
Enjoy!
Comments
Comments powered by Disqus