为何protobuf对变长有符号整数不直接使用字节链表来表示而是先zigzag处理?

因为要写入或者提取题主给出的方法2的符号位,是一件相对麻烦(更多步骤,在编程的意义上和CPU指令的意义上)的事情。相对于Google文档里的ZigZag方法而言。一般做编码的指导思想是,尽量整体处理每个byte,而不是区别对待每个bit。protobuf这种1+7bits结构,已经是为了大小牺牲速度了。手机码字,先上结论,回去有空的话再展开。
■网友
因为zigzag和native的整形转换只有3次位运算而你说的这种不行


    推荐阅读