정수를 이진으로 변환하기 위해이 코드를 사용했습니다.
>>> bin(6)
'0b110'
그리고 ‘0b’를 지울 때 나는 이것을 사용합니다 :
>>> bin(6)[2:]
'110'
내가 보여주고 싶은 경우에 무엇을 할 수 6
로 00000110
대신 110
?
답변
>>> '{0:08b}'.format(6)
'00000110'
서식 문자열의 일부를 설명하기 위해 :
{}
변수를 문자열에 넣습니다0
인수 위치 0에서 변수를 사용합니다.:
이 변수에 대한 형식화 옵션을 추가합니다 (그렇지 않으면 10 진수를 나타냄6
).08
왼쪽에 숫자가 0 인 숫자를 8 자리로 형식화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'
답변
numpy.binary_repr(num, width=None)
마법의 폭이있다
위에 링크 된 문서의 관련 예제 :
>>> np.binary_repr(3, width=4) '0011'
입력 숫자가 음수이고 너비가 지정되면 2의 보수가 반환됩니다.
>>> np.binary_repr(-3, width=5) '11101'