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