Base- 2 (двоичный) представление с использованием Python

Здание, Как Вы выразить Двоичные Литералы в Python, я думал о разумным, интуитивно понятные способы для этого Программирования 101 каштан отображение чисел с основанием 2 формы. Это лучшее, что я придумал, но мне бы хотелось, чтобы заменить его более эффективный алгоритм, или, по крайней мере, должны были кричать-высокая производительность.

def num_bin(N, places=8):
    def bit_at_p(N, p):
        ''' find the bit at place p for number n '''
        two_p = 1 << p   # 2 ^ p, using bitshift, will have exactly one
                         # bit set, at place p
        x = N & two_p    # binary composition, will be one where *both* numbers
                         # have a 1 at that bit.  this can only happen 
                         # at position p.  will yield  two_p if  N has a 1 at 
                         # bit p
        return int(x > 0)

    bits =  ( bit_at_p(N,x) for x in xrange(places))
    return "".join( (str(x) for x in bits) )

    # or, more consisely 
    # return "".join([str(int((N & 1 << x)>0)) for x in xrange(places)])

Найдено 2 ответа:

Base-2 (Binary) Representation Using Python

http://stackoverflow.com/questions/187273/base-2-binary-representation-using-python

Посмотреть решение →