Examples
Here is a worked out example for the decimal number 137:
- Represent the value in binary notation (e.g. 137 as 10001001)
- Break it up in groups of 7 bits starting from the lowest significant bit (e.g. 137 as 0000001 0001001). This is equivalent to representing the number in base 128.
- Take the lowest 7 bits and that gives you the least significant byte (0000 1001). This byte comes last.
- For all the other groups of 7 bits (in the example, this is 000 0001), set the MSB to 1 (which gives 1000 0001 in our example). Thus 137 becomes 1000 0001 0000 1001 where the bits in boldface are something we added. These added bits denote if there is another byte to follow or not. Thus, by definition, the very last byte of a variable length integer will have 0 as its MSB.
Another way to look at this is to represent the value in base-128, and then set the MSB of all but the last base-128 digit to 1.
The Standard MIDI File format specification gives more examples:
Integer | Variable-length quantity |
---|---|
0x00000000 | 0x00 |
0x0000007F | 0x7F |
0x00000080 | 0x81 0x00 |
0x00002000 | 0xC0 0x00 |
0x00003FFF | 0xFF 0x7F |
0x00004000 | 0x81 0x80 0x00 |
0x001FFFFF | 0xFF 0xFF 0x7F |
0x00200000 | 0x81 0x80 0x80 0x00 |
0x08000000 | 0xC0 0x80 0x80 0x00 |
0x0FFFFFFF | 0xFF 0xFF 0xFF 0x7F |
Read more about this topic: Variable-length Quantity
Famous quotes containing the word examples:
“Histories are more full of examples of the fidelity of dogs than of friends.”
—Alexander Pope (16881744)
“It is hardly to be believed how spiritual reflections when mixed with a little physics can hold peoples attention and give them a livelier idea of God than do the often ill-applied examples of his wrath.”
—G.C. (Georg Christoph)
“No rules exist, and examples are simply life-savers answering the appeals of rules making vain attempts to exist.”
—André Breton (18961966)