python에서 정수를 이진수로 변환하는 중
정수를 2진수로 변환하기 위해 다음 코드를 사용했습니다.
>>> bin(6)
'0b110'
그리고 '0b'를 지울 때는 다음과 같이 사용합니다.
>>> bin(6)[2:]
'110'
내가 어떻게 할 수 있지?6
~하듯이00000110
대신110
?
>>> '{0:08b}'.format(6)
'00000110'
포맷 문자열의 일부에 대해 설명하겠습니다.
{}
변수를 문자열에 배치하다0
인수 위치 0에서 변수를 받아들입니다.:
이 변수의 포맷옵션을 추가합니다(단, 10진수를 나타냅니다).6
)08
왼쪽의 숫자 형식을 8자리 영숫자로 지정합니다.b
숫자를 바이너리 표현으로 변환합니다.
Python 3.6 이상의 버전을 사용하는 경우 f-string도 사용할 수 있습니다.
>>> 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>")
유미로의 답변이 더 좋긴 하지만, 저는 단지 다양성을 위해 이 글을 올렸습니다.
>>> "%08d" % int(bin(6)[2:])
00000110
numpy.binary_repr(num, width=None)
매직폭 인수를 가지다
위에 링크된 문서의 관련 예:
>>> np.binary_repr(3, width=4) '0011'
입력 번호가 음수이고 너비가 지정되면 두 개의 보수가 반환됩니다.
>>> np.binary_repr(-3, width=5) '11101'
..또는 항상 8자리여야 하는지 확실하지 않은 경우 파라미터로 전달할 수 있습니다.
>>> '%0*d' % (8, int(bin(6)[2:]))
'00000110'
올드 스쿨에 가는 것은 항상 효과가 있다.
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))
가장 좋은 방법은 형식을 지정하는 것입니다.
format(a, 'b')
문자열 형식의 이진 값을 반환합니다.
이진 문자열을 정수로 변환하려면 int() 함수를 사용합니다.
int('110', 2)
이진 문자열의 정수 값을 반환합니다.
항상 일정하지는 않은 변수에서 나타내는 자리수를 해석하는 경우 numpy.binary를 사용하는 것이 좋습니다.
바이너리를 파워셋에 적용할 때 도움이 될 수 있습니다.
import numpy as np
np.binary_repr(6, width=8)
훨씬 더 쉬운 방법
my_num = 6
print(f'{my_num:b}')
('0' * 7 + bin(6)[2:])[-8:]
또는
right_side = bin(6)[2:]
'0' * ( 8 - len( right_side )) + right_side
다음 항목만 사용할 수 있습니다.
"{0:b}".format(n)
내 생각에는 이게 가장 쉬운 방법인 것 같아!
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)
파이썬 패키지 Binary Fractions는 이진수와 이진수의 완전한 구현을 제공합니다.조작은 다음과 같이 실행할 수 있습니다.
from binary_fractions import Binary
b = Binary(6) # creates a binary fraction string
b.lfill(8) # fills to length 8
이 패키지에는 바이너리 문자열을 완전 정밀하게 조작하는 다른 방법이 많이 있습니다.
재귀가 있는 단순 코드:
def bin(n,number=('')):
if n==0:
return(number)
else:
number=str(n%2)+number
n=n//2
return bin(n,number)
언급URL : https://stackoverflow.com/questions/10411085/converting-integer-to-binary-in-python
'sourcecode' 카테고리의 다른 글
dup2 / dup - 파일 기술자를 복제해야 하는 이유는 무엇입니까? (0) | 2022.09.16 |
---|---|
:SSL:http://en.wikipedia.org에CERTIFICATE_VERIFY_FAILED 오류를 매끄럽게 해라. (0) | 2022.09.16 |
Java 전체 화면에서의 JFrame (0) | 2022.09.16 |
장고 마이 그레이션 오류:필드 'name'기본 가치는 없어. (0) | 2022.09.16 |
Larabel 5 클리어 뷰 캐시 (0) | 2022.09.16 |