"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 정수를 바이트 문자열로 변환하고 다시 되돌리려면 어떻게 해야 합니까?

Python에서 정수를 바이트 문자열로 변환하고 다시 되돌리려면 어떻게 해야 합니까?

2024-11-09에 게시됨
검색:217

How Can I Convert Integers to Byte Strings and Back in Python?

"bytes(n)"로 바이트 문자열 생성

Python 3의 "bytes(n)" 함수는 정수를 이진 표현으로 변환하는 대신 널 바이트(b'\x00')로 채워진 길이 n의 바이트 문자열을 생성합니다. 이 동작은 정수를 바이트로 인코딩하는 수단으로 "to_bytes()" 메서드가 도입된 Python 3.2에서 비롯되었습니다.

To_Bytes 및 To_Bytes

"to_bytes ()" 메서드를 사용하면 바이트 순서(빅 엔디안 또는 리틀 엔디안)와 길이를 지정하여 정수를 바이트 표현으로 명시적으로 변환할 수 있습니다. 예:

(1024).to_bytes(2, byteorder='big') == b'\x04\x00'

From_Bytes 및 From_Bytes

보완적인 "from_bytes()" 메소드는 바이트 시퀀스를 다시 정수:

int.from_bytes(b'\x04\x00', 'big') == 1024

부호 없는 정수

"to_bytes()" 메소드는 음수가 아닌(부호 없는) 정수에 대해 작동합니다. 부호 있는 정수를 처리하려면 약간 다른 접근 방식이 필요합니다:

def int_to_bytes(number: int) -> bytes:
    return number.to_bytes(length=(8   (number   (number < 0)).bit_length()) // 8, byteorder='big', signed=True)

def int_from_bytes(binary_data: bytes) -> Optional[int]:
    return int.from_bytes(binary_data, byteorder='big', signed=True)

이러한 함수를 사용하면 부호 있는 정수를 바이트 시퀀스로 인코딩하고 디코딩할 수 있습니다.

릴리스 선언문 이 글은 1729407016에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3