0xFF로 바이트를 OR 연산하여 클라이언트에 1 비트 플래그로 항상 127보다 작은 바이트를 전송합니다.JavaScript - 정수의 음수 바이트
JavaScript에서는 클라이언트 측에서 메시지의 바이트 수를 나타내는 Array() 배열을 사용합니다 (예 : 아마도 바보이지만 입력 된 배열을 아직 알지 못했습니다).
가장 낮은 바이트 세트의 가장 높은 비트로 숫자를 맞추기 전까지는 모든 것이 잘 작동합니다.
Number: 0011 0101
flag: 1000 0000
---------
1011 0101
Stored as
integer in ???
JavaScript
I (0으로 설정 가장 높은 비트) 원래 바이트 플러스 (가장 높은 비트의 값으로 표시) 플래그를 검색 할 수있는 방법
?
예:
(server)
byte x = 90
x | 0x80
> -38
(client - JavaScript)
var x = -38
x^0x80
> -166
가 어떻게 90 다시받을 수 있나요?
편집 - 난 내가 질문을 이해 확실하지 ... 모든 죄송합니다 ... 인코딩과
죄송합니다. 질문을 완전히 이해하지 못했습니다. 싱글 바이트를 7 비트 값과 1 비트 값으로 "분할"하려고 생각한 것입니까? – freefaller
네, 그렇지만 더 이상 바이트가 아닙니다. 자바 스크립트 번호입니다. 0x80로 XOR하면 여전히 음수가됩니다. – user202987
음수를 생성하는 코드를 표시 할 수 있습니까? 이것은 나를 위해 작동합니다 :'num = parseInt ('10110101', 2)^0x80' 그리고'flag = parseInt ('10110101', 2) & 0x80! == 0' – tjameson