Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting a number to binary with a fixed length

Say I get a random number between 1 and 127. I change the number to binary and remove the 0b from it with the fallowing code:

key_one= int(raw_input("Enter key (0 <= key <= 127): "))  if key_one in range(128):     bin_key_one=bin(key_one)[2:] print bin_key_one else:     print "You have to enter key (0 <= key <= 127)" 

Now I want to make it 7-characters long by padding the beginning with zeros as necessary. I think I need to use a for loop, but can someone show me how to do it?

like image 684
babikar Avatar asked Jul 15 '10 04:07

babikar


People also ask

How do you convert a number to a binary?

Converting decimal integer to binary To convert integer to binary, start with the integer in question and divide it by 2 keeping notice of the quotient and the remainder. Continue dividing the quotient by 2 until you get a quotient of zero. Then just write out the remainders in the reverse order.

How do you find the length of a binary number?

The length of a binary number is given by the value of n, actually it's n+1. For example, a binary number like 101 has a length of 3, something larger, like 10011110 has a length of 8.

How do you convert to binary easily?

An easy method of converting decimal to binary number equivalents is to write down the decimal number and to continually divide-by-2 (two) to give a result and a remainder of either a “1” or a “0” until the final result equals zero.


2 Answers

No you don't.

>>> '{0:07b}'.format(12) '0001100' 
like image 194
Ignacio Vazquez-Abrams Avatar answered Oct 13 '22 15:10

Ignacio Vazquez-Abrams


So it happens that Python has a string method .zfill() for that:

>>> '1'.zfill(7) '0000001' >>> '10010'.zfill(7) '0010010' 
like image 31
Nas Banov Avatar answered Oct 13 '22 14:10

Nas Banov