Чтобы преобразовать целое число в двоичный код, я использовал этот код:
>>> bin(6)
'0b110'
и когда стереть '0b', я использую это:
>>> bin(6)[2:]
'110'
Что мне делать, если я хочу показать 6
как 00000110
вместо 110
?
Чтобы преобразовать целое число в двоичный код, я использовал этот код:
>>> bin(6)
'0b110'
и когда стереть '0b', я использую это:
>>> bin(6)[2:]
'110'
Что мне делать, если я хочу показать 6
как 00000110
вместо 110
?
>>> '{0:08b}'.format(6)
'00000110'
Просто, чтобы объяснить части строки форматирования:
{}
помещает переменную в строку0
принимает переменную в позиции аргумента 0:
добавляет параметры форматирования для этой переменной (иначе она будет представлять десятичную 6
)08
форматирует число до восьми цифр с нулями слеваb
преобразует число в двоичное представлениеЕсли вы используете версию Python 3.6 или выше, вы также можете использовать f-строки:
>>> f'{6:08b}'
'00000110'
Просто еще одна идея:
>>> bin(6)[2:].zfill(8)
'00000110'
Более короткий путь через интерполяцию строк (Python 3. 6+):
>>> f'{6:08b}'
'00000110'
Немного сложный метод...
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'
Просто используйте функцию формата
format(6, "08b")
Общий вид
format(<the_integer>, "<0><width_of_string><format_specifier>")
eumiro ответ лучше, однако я просто размещаю это для разнообразия:
>>> "%08d" % int(bin(6)[2:])
00000110
.. или если вы не уверены, что он всегда должен быть 8 цифр, вы можете передать его как параметр:
>>> '%0*d' % (8, int(bin(6)[2:]))
'00000110'
Going Old School всегда работает
def intoBinary(number):
binarynumber=""
if (number!=0):
while (number>=1):
if (number %2==0):
binarynumber=binarynumber+"0"
number=number/2
else:
binarynumber=binarynumber+"1"
number=(number-1)/2
else:
binarynumber="0"
return "".join(reversed(binarynumber))
('0' * 7 + bin(6)[2:])[-8:]
или же
right_side = bin(6)[2:]
'0' * ( 8 - len( right_side )) + right_side
numpy.binary_repr(num, width=None)
Примеры из документации по ссылке выше:
>>> np.binary_repr(3) '11' >>> np.binary_repr(-3) '-11' >>> np.binary_repr(3, width=4) '0011'
Дополнение twos возвращается, когда введенное число отрицательно и указана ширина:
>>> np.binary_repr(-3, width=3) '101' >>> np.binary_repr(-3, width=5) '11101'
numpy.binary_repr(num, width=None)
имеет аргумент магической шириныСоответствующие примеры из документации, указанной выше:
>>> np.binary_repr(3, width=4) '0011'
Дополнение twos возвращается, когда введенное число отрицательно и указана ширина:
>>> np.binary_repr(-3, width=5) '11101'