integer to binary...

mensanator at aol.com mensanator at aol.com
Thu Jun 1 17:25:10 EDT 2006


nicolasg at gmail.com wrote:
> does anyone know a module or something to convert numbers like integer
> to binary format ?
>
> for example I want to convert number 7 to 0111 so I can make some
> bitwise operations...
>
> Thanks

Use the gmpy module.

>>> import gmpy
>>> a = 14
>>> b = 7
>>> c = 8

>>> help(gmpy.digits)
Help on built-in function digits:

digits(...)
    digits(x[,base]): returns Python string representing x in the
    given base (2 to 36, default 10 if omitted or 0); leading '-'
    present if x<0, but no leading '+' if x>=0. x must be an mpz,
    or else gets coerced into one.

>>> print gmpy.digits(a,2)
1110
>>> print gmpy.digits(b,2)
111
>>> print gmpy.digits(c,2)
1000


>>> help(gmpy.setbit)
Help on built-in function setbit:

setbit(...)
    setbit(x,n,v=1): returns a copy of the value of x, with bit n set
    to value v; n must be an ordinary Python int, >=0; v, 0 or !=0;
    x must be an mpz, or else gets coerced to one.

>>> d = gmpy.setbit(c,1,1)
>>> print gmpy.digits(d,2)
1010



>>> help(gmpy.scan1)
Help on built-in function scan1:

scan1(...)
    scan1(x, n=0): returns the bit-index of the first 1-bit of x (that
    is at least n); n must be an ordinary Python int, >=0.  If no more
    1-bits are in x at or above bit-index n (which can only happen for
    x>=0, notionally extended with infinite 0-bits), None is returned.
    x must be an mpz, or else gets coerced to one.

>>> help(gmpy.scan0)
Help on built-in function scan0:

scan0(...)
    scan0(x, n=0): returns the bit-index of the first 0-bit of x (that
    is at least n); n must be an ordinary Python int, >=0.  If no more
    0-bits are in x at or above bit-index n (which can only happen for
    x<0, notionally extended with infinite 1-bits), None is returned.
    x must be an mpz, or else gets coerced to one.

>>> print gmpy.scan1(a)
1
>>> print gmpy.scan1(b)
0
>>> print gmpy.scan1(c)
3
>>> print gmpy.scan1(d)
1
>>> print gmpy.scan0(a)
0
>>> print gmpy.scan0(b)
3
>>> print gmpy.scan0(c)
0
>>> print gmpy.scan0(d)
0

>>> help(gmpy.popcount)
Help on built-in function popcount:

popcount(...)
    popcount(x): returns the number of 1-bits set in x; note that
    this is 'infinite' if x<0, and in that case, -1 is returned.
    x must be an mpz, or else gets coerced to one.

>>> print gmpy.popcount(a)
3
>>> print gmpy.popcount(b)
3
>>> print gmpy.popcount(c)
1
>>> print gmpy.popcount(d)
2


>>> help(gmpy.hamdist)
Help on built-in function hamdist:

hamdist(...)
    hamdist(x,y): returns the Hamming distance (number of bit-positions
    where the bits differ) between x and y.  x and y must be mpz, or
else
    get coerced to mpz.

>>> print gmpy.hamdist(a,b)
2
>>> print gmpy.hamdist(a,c)
2
>>> print gmpy.hamdist(a,d)
1
>>> print gmpy.hamdist(b,c)
4
>>> print gmpy.hamdist(b,d)
3
>>> print gmpy.hamdist(c,d)
1




More information about the Python-list mailing list