파이썬에서 정수를 바이트 배열로 처리하려면 어떻게 해야 하나요?
파이썬 os.wait() 함수의 결과를 디코딩하려고 합니다. 파이썬 문서에 따르면 다음과 같이 반환됩니다:
16비트 숫자(낮은 바이트는 프로세스를 종료한 신호 번호, 높은 바이트는 종료 상태(신호 번호가 0인 경우))가 포함된 튜플; 코어 파일이 생성된 경우 낮은 바이트의 높은 비트가 설정됩니다.
종료 상태 표시(정수)를 디코딩하여 높은 바이트와 낮은 바이트를 얻으려면 어떻게 해야 하나요? 구체적으로 다음 코드 스니펫에서 사용되는 디코딩 함수를 어떻게 구현하나요?
(pid,status) = os.wait()
(exitstatus, signum) = decode(status)
10
7
일반 질문에 답변해 [약어입니다 조작] 를 사용할 수 있습니다 (http://en.wikipedia.org/wiki/Bit_twiddling) 기술입니다.
그러나 또한 [기능을 내장한] (http://docs.python.org/lib/os-process.html # l2h-2780) 해석 종료 상태 값:
참고:
이렇게 하면 원하는 작업을 수행할 수 있습니다:
Unsigned int 를 얻을 수 있으며, break your 문자열을 바이트입니다 를 [구조체입니다] [1] 모듈에서는:
비트 시프팅](http://docs.python.org/ref/shifting.html) 및 마스킹 연산자를 사용하여 상태의 압축을 풀 수 있습니다.
저는 파이썬 프로그래머가 아니기 때문에 구문이 정확했기를 바랍니다.
저보다 앞선 사람들이 잘 해냈지만, 정말 한 줄로 정리하고 싶다면 이렇게 하면 됩니다:
편집 : 거꾸로했습니다.