2014-11-07 1 views
1

이유는 무엇입니까?다음 struct.pack() INT에 실패> 127

"b"는 주어진 값의 크기가 struct docs에 따라 1 바이트라는 것을 알고 있지만, 127을 넘는 값으로는 왜 실패하나요? 그 유효 범위 [-128, 127]을 의미한다

signed char

:

답변

3

the documentation에 따르면 b 약자. 그리고 그 오류 메시지가 명시 적으로 말하는 없습니다 : B를 사용

>>> struct.pack("!bbbb", 0x2, 127, 127, 128) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
struct.error: byte format requires -128 <= number <= 127 

산출 오류 :

>>> struct.pack("!bbbB", 0x2, 127, 127, 128) 
'\x02\x7f\x7f\x80' 
관련 문제