PHP에서 Bindec () 함수는 이진 문자열을 10 진수로 변환하는 데 사용되며 이진 데이터를 처리 할 때 매우 실용적인 도구입니다. 예를 들어:
<?php
echo bindec("1101"); // 산출 13
?>
Python에는 Bindec () 와 동일한 이름의 내장 기능이 없지만 동일한 기능을 매우 간단하게 구현할 수 있습니다. 이 기사는 몇 가지 예를 사용하여 Python에서 PHP의 Bindec () 함수를 시뮬레이션하는 방법을 자세히 설명합니다.
Python의 내장 기능 int () 는 임의의 문자열을 십진수로 변환 할 수 있으므로 올바른 카디널리티를 제공해야합니다. 예를 들어:
binary_string = "1101"
decimal_number = int(binary_string, 2)
print(decimal_number) # 산출 13
이 int (binary_string, 2)는 bindec ( "1101") 과 동일한 효과를 달성합니다.
PHP가 어떻게 사용되는지에 가까워지면 Bindec 이라는 함수를 캡슐화 할 수 있습니다.
def bindec(binary_string):
try:
return int(binary_string, 2)
except ValueError:
raise ValueError("입력 된 문자열은 유효한 이진 형식이 아닙니다")
사용 방법은 다음과 같습니다.
print(bindec("1010")) # 산출 10
php에서, bindec ()는 이진 문자열을 보완 양식으로 취급하여 서명 된 십진수로 변환합니다. 예를 들어:
echo bindec("11111111111111111111111111111111"); // 산출 -1
이 경우 Bindec ()는 모두 32 비트 1을 -1 (서명 된 정수)로 처리합니다. 파이썬에서 유사한 효과를 얻으려면 기호 비트를 수동으로 판단해야합니다.
def bindec_signed(binary_string):
length = len(binary_string)
value = int(binary_string, 2)
if binary_string[0] == '1':
# 서명을 보완합니다
value -= 1 << length
return value
예:
print(bindec_signed("11111111111111111111111111111111")) # 산출 -1
print(bindec_signed("10000000000000000000000000000000")) # 산출 -2147483648
불법 문자열이 들어가는 것을 방지하기 위해 먼저 문자열이 순수한 이진 형식인지 확인할 수 있습니다.
def is_valid_binary(s):
return all(c in '01' for c in s)
조합으로 사용 :
def bindec_safe(binary_string):
if not is_valid_binary(binary_string):
raise ValueError("불법 이진 문자열")
return int(binary_string, 2)
웹 페이지에서 이러한 코드를 테스트 할 수 있도록 온라인 파이썬 실행 환경을 사용할 수 있습니다.
결과를 얻으려면 위의 코드를 웹 페이지에 복사하면 디버깅에 매우 편리합니다.
Python은 Bindec () 함수가 내장되어 있지 않지만 int () 함수 및 간단한 논리적 처리를 통해 PHP 에서이 기능을 완전히 시뮬레이션하고 더 강력하게 만들 수도 있습니다.
기본 기능은 int (Binary, 2) 에 의해 실현 될 수 있습니다.
PHP의 보완 동작을 시뮬레이션하려면 bindec_signed ()를 사용할 수 있습니다.
예외 및 유효성 처리를 추가하면 견고성이 향상 될 수 있습니다.
이 자습서가 언어 교차 개발에서 Bindec () 의 관련 논리를 성공적으로 마이그레이션하는 데 도움이되기를 바랍니다.