대 나는 다음과 같은 명령을 실행 파이썬에서, 내가있어파이썬은 자바
프로그램을 번역하는 자바와 파이썬에서 바이너리와 조금 사투를 벌인거야, 포장 이진 데이터로 문자열을 해석
>>> print ord(pack('>H', 32809)[0])
128
>>> print ord(pack('>H', 32809)[1])
41
자바에서
는, 나는 다음과 같은 명령을 실행할 때와 동일한 결과를 기대하지만, 거기이다 : (128) 자바에 부정적인 이유
는bsh % print ((byte)((32809 & 0xFF00) >> 8));
-128
bsh % print ((byte)(32809 & 0x00FF));
41
누군가 나를 설명 할 수 있습니까? 많은 감사.
그것은 (바이트) 128 = -128을 의미합니까? – art1go
예. 127에서 증가하는 "랩 어라운드"- 127의 비트 패턴은 0x7F입니다. 하나를 추가하면 0x80이됩니다. 부호 첨부 byte로서 해석되는 경우, -128 +128을 올바르게 나타 내기 위해 부호있는 바이트에 충분한 비트가 없습니다. –