반응형
밑이 2 진 문자열을 int로 변환
기본 2 이진 숫자 문자열을 다음과 같이 int로 변환하고 싶습니다.
>>> '11111111'.fromBinaryToInt()
255
파이썬에서 이것을 할 수있는 방법이 있습니까?
내장 int
함수를 사용하여 입력 번호의 기본, 즉 2
이진수에 전달하십시오 .
>>> int('11111111', 2)
255
다음은 python2 및 python3에 대한 설명서입니다 .
파이썬 대화 형 인터페이스에서 0b11111111 을 입력 하십시오 .
>>> 0b11111111
255
이를 수행하는 또 다른 방법은 bitstring
모듈 을 사용하는 것입니다 .
>>> from bitstring import BitArray
>>> b = BitArray(bin='11111111')
>>> b.uint
255
부호없는 정수는 부호있는 정수와 다릅니다.
>>> b.int
-1
이 bitstring
모듈은 요구 사항은 아니지만 입력을 비트에서 다른 형식으로 바꾸거나 조작하는 데 많은 성능을 발휘하는 방법이 있습니다.
base와 함께 int를 사용하는 것이 올바른 방법입니다. int가 기본을 차지하기 전에이 작업을 수행했습니다. 기본적으로 이진수를 십진수로 변환하는 기본 방식의 목록 이해에 적용되는 감소입니다 (예 : 110 = 2 ** 0 * 0 + 2 ** 1 * 1 + 2 ** 2 * 1).
add = lambda x,y : x + y
reduce(add, [int(x) * 2 ** y for x, y in zip(list(binstr), range(len(binstr) - 1, -1, -1))])
무대 뒤에서 무슨 일이 일어나고 있는지 알고 싶다면 여기로 가십시오.
class Binary():
def __init__(self, binNumber):
self._binNumber = binNumber
self._binNumber = self._binNumber[::-1]
self._binNumber = list(self._binNumber)
self._x = [1]
self._count = 1
self._change = 2
self._amount = 0
print(self._ToNumber(self._binNumber))
def _ToNumber(self, number):
self._number = number
for i in range (1, len (self._number)):
self._total = self._count * self._change
self._count = self._total
self._x.append(self._count)
self._deep = zip(self._number, self._x)
for self._k, self._v in self._deep:
if self._k == '1':
self._amount += self._v
return self._amount
mo = Binary('101111110')
재귀 파이썬 구현 :
def int2bin(n):
return int2bin(n >> 1) + [n & 1] if n > 1 else [1]
참고 URL : https://stackoverflow.com/questions/8928240/convert-base-2-binary-number-string-to-int
반응형
'Programing' 카테고리의 다른 글
해시 마크 (#)로 git commit 메시지를 시작하십시오 (0) | 2020.03.31 |
---|---|
Moq에서 out / ref 파라미터 지정 (0) | 2020.03.31 |
기능적 요구 사항과 비 기능적 요구 사항의 차이점은 무엇입니까? (0) | 2020.03.31 |
malloc () 및 free ()는 어떻게 작동합니까? (0) | 2020.03.31 |
카메라에서 이미지 캡처 및 활동 표시 (0) | 2020.03.31 |