>  기사  >  백엔드 개발  >  Python에서 바이트 문자열을 정수로 변환하는 방법: 어떤 방법이 가장 좋습니까?

Python에서 바이트 문자열을 정수로 변환하는 방법: 어떤 방법이 가장 좋습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 04:04:02225검색

How to Convert a Byte String to an Integer in Python: Which Method is Best?

Python에서 바이트 문자열을 정수로 변환하는 방법

Python에서 바이트 문자열을 정수로 변환하는 방법은 다양한 방법을 사용하여 수행할 수 있습니다. 일부 메소드는 다른 메소드보다 더 나은 성능을 제공합니다.

내장 함수: int.from_bytes()

Python 버전 3.2 이상에서는 직접 변환할 수 있습니다. int.from_bytes() 함수를 사용하여 바이트 문자열을 정수로 변환합니다:

<code class="python">my_int = int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>

여기서 byteorder는 바이트 문자열의 엔디안을 지정하기 위해 'big' 또는 'little'일 수 있습니다. 빅엔디안은 최상위 바이트가 먼저 저장된다는 의미이고, 리틀엔디안은 최하위 바이트가 먼저 저장된다는 의미입니다.

이진 표현 사용

또 다른 접근 방식은 다음과 같습니다. 바이트 문자열을 이진 표현으로 변환한 다음 int() 함수를 적용합니다.

<code class="python">my_int = int(''.join(format(byte, '08b') for byte in b'y\xcc\xa6\xbb'[::-1]), 2)</code>

이 방법은 int.from_bytes()보다 느리지만 이진 데이터로 작업해야 하는 경우 유용할 수 있습니다.

사용자 정의 함수

바이트 문자열을 정수로 변환하는 사용자 정의 함수를 만들 수도 있습니다.

<code class="python">def convert_bytes_to_int(byte_string, endianness='big'):
    if endianness == 'big':
        return sum(ord(c) << (i * 8) for i, c in enumerate(byte_string))
    else:
        return sum(ord(c) << (len(byte_string) - i - 1) * 8 for i, c in enumerate(byte_string))</code>

성능 비교

이러한 다양한 방법의 성능은 바이트 문자열의 길이와 엔디안에 따라 달라질 수 있습니다. 일반적으로 int.from_bytes()가 가장 빠른 방법이고, 이진 표현 방법, 사용자 정의 함수 순입니다.

위 내용은 Python에서 바이트 문자열을 정수로 변환하는 방법: 어떤 방법이 가장 좋습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.