답변:
>>> '{0:08b}'.format(6)
'00000110'
서식 문자열의 일부를 설명하기 위해 :
{}
변수를 문자열에 넣습니다0
인수 위치 0에서 변수를 사용합니다.:
이 변수에 대한 형식화 옵션을 추가합니다 (그렇지 않으면 10 진수를 나타냄 6
).08
왼쪽에 숫자가 0 인 숫자를 8 자리로 형식화b
숫자를 이진 표현으로 변환Python 3.6 이상의 버전을 사용하는 경우 f- 문자열을 사용할 수도 있습니다.
>>> f'{6:08b}'
'00000110'
0
는에 대한 0th
인수를 의미합니다 format
. 콜론 포맷이되면, 두 번째 0
수단은 8 공백 및 제로 채우기 b
진 대
format()
기능 : format(6, '08b')
; 이 함수는 값 ( {..}
슬롯이 적용되는 것)과 서식 지정 ( :
포맷 문자열에서 뒤에 나오는 것)을 취합니다 .
또 다른 아이디어 :
>>> bin(6)[2:].zfill(8)
'00000110'
문자열 보간을 통한 더 짧은 방법 ( Python 3.6+ ) :
>>> f'{6:08b}'
'00000110'
bin(-6)[2:].zfill(8)
으로 읽고'0000b110'
조금 꼬집는 방법 ...
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'
x
오른쪽으로 이동하고 와 함께 AND를 처리하여 1
한 번에 하나의 비트 (0 또는 1)를 효과적으로 추출합니다.
numpy.binary_repr(num, width=None)
마법의 폭이있다위에 링크 된 문서의 관련 예제 :
>>> np.binary_repr(3, width=4) '0011'
입력 숫자가 음수이고 너비가 지정되면 2의 보수가 반환됩니다.
>>> np.binary_repr(-3, width=5) '11101'
가는 올드 스쿨은 항상 작동
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))
number=number/2
플로트를 제공합니다, 그래서 number=number//2
더 나은 솔기도 나는 대체 할 number=number//2
로 number//=2
와 b=b+"0"
함께b+="0"
def int_to_bin(num, fill):
bin_result = ''
def int_to_binary(number):
nonlocal bin_result
if number > 1:
int_to_binary(number // 2)
bin_result = bin_result + str(number % 2)
int_to_binary(num)
return bin_result.zfill(fill)