2017-05-23 7 views
0

protobuf 파일은 있지만 .proto 스키마 파일은 없습니다.Protobuf 스키마 및 데이터 형식을 공제

내가 스키마없이 알고
1: 1 
2: "" 
2 { 
    1: 0x40133f7ced916873 
    2: 0x3ff70e5604189375 
    3: 0xbfd23d70a3d70a3d 
    4: 0x3fb999999999999a 
} 
2 { 
    1: 0x4022e7ef9db22d0e 
    2: 0x4006ed916872b021 
    3: 0xbfe1cac083126e98 
    4: 0x3fc999999999999a 
} 
2 { 
    1: 0x402bdcac083126e9 
    2: 0x40111374bc6a7efa 
    3: 0xbfe9fbe76c8b4396 
    4: 0x3fd3333333333333 
} 
2 { 
    1: 0x40324147ae147ae1 
    2: 0x401696872b020c4a 
    3: 0xbff0e147ae147ae1 
    4: 0x3fd999999999999a 
} 
... 

나는이의 의미를 알 수 없습니다 : 위의 명령을 사용하여

cat myfile.pbuf | protoc --decode_raw > outputfile.txt

, 나는 어느 정도 읽을 수 protobuf 형식 (Thanks)로 파일을 디코딩 할 수 있었다 가치가 있지만, 나는이 이상함이 무엇인지 추론하기 위해 할 수있는 것이 있다면 궁금해합니다! protobuf documentation은 숫자 데이터가 2 바이트 또는 4 바이트 청크로 제공된다는 것을 나타내는 것으로 보입니다.이 청크는 int 또는 float로 쉽게 변환 할 수 있습니다.

내 데이터가이 형식에 맞지 않지만 숫자 데이터라는 것을 알고 있습니다! 나는 16 진수 x 표기법을 사용하여 protobuf 파일을 본적이 없으며 16 바이트 (단일 숫자가 너무 많음)입니다.

어떤 데이터 유형이 될 수 있습니까? 스키마를 디코딩하고 추가적으로 사용할 수 있습니까? 1, 2, 3, 4은 유용하거나 중요합니까?

답변

0

16 진수 값은 실제로 16 바이트가 아니라 8 바이트입니다. 따라서이 값은 int64s, uint64s 또는 double 일 수 있습니다. 1, 2, 3 및 4는 반복되는 메시지의 필드 번호로 나타납니다. 데이터를 수동으로 검사하고 의미를 추측하는 것 이외에는 디코딩 할 수있는 쉬운 방법이 없습니다.