직렬화/프로토콜 형식의 경우 서명되지 않은 64 비트 정수까지 부호없는 숫자를 공간 절약 방식으로 인코딩해야하는데 이는 여전히 구현하기 쉽습니다 (의미는 전용 압축 알고리즘을 찾고 있지 않음). 나는 다음에 대해 생각했다 : 오버플로 비트가있는 숫자의 바이너리 저장 ... 형식이 어떻게됩니까?
if n<128
take bits 0..6 for representing n, set overflow bit 7 to 0
store one byte
if n>=128 and n<16384
take bits 0..6 of byte 1 as bits 0..6 of n, set overflow bit 7 of byte 1 to 1
take bits 0..6 of byte 2 as bits 7..13 of n, set overflow bit 7 of byte 2 to 0
store byte 1 followed by byte 2
if n>=16384 and n<2^21
...set overflow bit 7 of byte 2 to 1... (and so on)
가 나는 이것에 대해 두 가지 질문이
이 :이 형식은 어떻게라고? 어디에서 구현을 찾을 수 있습니까?
작은 숫자 < 128이 매우 자주 전송되는 소켓을 통해 전송되는 바이너리 프로토콜입니다. 추가 처리가 그만한 가치가 있다고 생각합니까?
답장을 보내 주셔서 감사합니다. 물론, 알려진 프로토콜을 사용하고 싶습니다. 그래서 제가 묻는 것입니다. UTF8과의 유사성을 알고 있지만 이것은 숫자에 대한 것입니다. 인코딩을위한 7 비트와 1 오버플로 비트가있는 바이트 기반 형식을 사용하는 것은 자연스럽고 방금 발명 한 것 같지 않습니다. 전에 본 사람이 없습니까? – user601395