[Tutor] How to convert an integer into a binary?
Danny Yoo
dyoo@hkn.eecs.berkeley.edu
Wed, 8 Aug 2001 00:13:39 -0700 (PDT)
On Wed, 8 Aug 2001, Haiyang wrote:
> How can I convert an interger into a binary code in Python?
Good question! By the way, going the other way around, from binary to an
integer, is very easy:
###
>>> int('111001', 2)
57
###
and might be useful later on.
[This message does NOT have an "answer" attached to it, but it gives hints
on one way to do the int->binary conversion.]
One thing to notice is that if a number is odd, then its binary (base-2)
representation will end with a '1'. Here are a few examples:
###
>>> int('10101', 2)
21 # is odd
>>> int('1010', 2)
10 # is even
>>> int('101', 2)
5 # is odd
>>> int('10', 2)
2 # is even
>>> int('1', 2)
1
###
So if you have some number, then it's really easy to know about the last
digit: just check to see if the number's even or odd. Knowing what the
rest of the digits look like might still be a mystery though.
The second thing that might be useful is to look again at the example
above, but this time staring at two things: the binary number itself, and
its integer equivalent:
integer binary
------- ------
21 10101
10 1010
5 101
2 10
1 1
Take a look at it, and see if you can spot a pattern. Here's another
interpreter example with a peculiar pattern:
###
>>> int('100110', 2)
38
>>> int('10011', 2)
19
>>> int('1001', 2)
9
>>> int('100', 2)
4
>>> int('10', 2)
2
>>> int('1', 2)
1
###
Forgive me: I'm being deliberately obscure here. *grin* If you're
impatient, please feel free to ask again, and one of us can reply with
some example code.
Good luck to you!