2014-01-04 4 views
0

Я ищу наилучший способ представления символа в его представлении бит по заданному числу длины (переменной) Например : в представлении байт, число '5': 0101, если данная длина равна 4.Каков наилучший способ представления символа в его представлении битов (Python)

+2

вы имели в виду '0101' вместо' 1010'? И, пожалуйста, уточните свой вопрос. – thefourtheye

ответ

2
>>> print '{:04b}'.format(5) 
0101 

В строке «{: 04b}», то «4» означает, что мы хотим, чтобы результат включить 4-х символов, даже если меньше требуются и «0» означает, что мы хотим, чтобы он обработал результат нулями.

Если вы хотите, размер под управлением программы:

>>> n = 6 ; '{0:0{1}b}'.format(5, n) 
'000101' 

Или:

>>> n = 6 ; ('{:0%sb}' % n).format(5) 
'000101' 

Или:

>>> n = 6 ; ('{:0' + str(n) + 'b}').format(5) 
'000101' 
+0

, но если «4» является переменной? – user3045065

+0

@ user3045065 См. Обновленный ответ. – John1024

1

Вы можете использовать format или str.format с 04b в format specification:

>>> format(5, '04b') 
'0101' 
>>> '{:04b}'.format(5) 
'0101' 

Вы также можете указать длину 4 как аргум лор, если вы используете str.format:

>>> '{:0{}b}'.format(5, 4) 
'0101' 
>>> '{0:0{1}b}'.format(5, 4) 
'0101' 
Смежные вопросы