I read the code `size_t CodedOutputStream::VarintSize32(uint32 value)` and found that after getting the most significant bits of a value, the code use "(log2value * 9 + 73) / 64" instead of "log2value / 7 + 1" to calculate the size need for this varint.
I'm curious how this "(log2value * 9 + 73) / 64" come? What's the mathematical principle here? The comment said: "Use an explicit multiplication to implement the divide of a number in the 1..63 range." but I just can't understand. -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to protobuf+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/CAMUQRevU9qOFO6qig_VVkSmk_iLHXOC008ua8jfGHNZNN8KsMw%40mail.gmail.com.