In the google protocol buffers encoding overview, they introduce something called \"Zig Zag Encoding\", this takes signed numbers, which have a small magnitude, and creates a series of unsigned number