2.2.2.5 EIGHT_BYTE_UNSIGNED_INTEGER
The EIGHT_BYTE_UNSIGNED_INTEGER structure is used to encode a value in the range 0x0000000000000000 to 0x1FFFFFFFFFFFFFFF by using a variable number of bytes. For example, 0x001A1B1C1D1E1F2A is encoded as {0xDA, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x2A}. The three most significant bits of the first byte encode the number of bytes in the structure.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
c |
val1 |
val2 (optional) |
val3 (optional) |
val4 (optional) |
|||||||||||||||||||||||||||
|
val5 (optional) |
val6 (optional) |
val7 (optional) |
val8 (optional) |
||||||||||||||||||||||||||||
c (3 bits): A 3-bit unsigned integer field containing an encoded representation of the number of bytes in this structure.
-
Value
Meaning
ONE_BYTE_VAL
0
Implies that the optional val2, val3, val4, val5, val6, val7 and val8 fields are not present. Hence, the structure is 1 byte in size.
TWO_BYTE_VAL
1
Implies that the optional val2 field is present, while the optional val3, val4, val5, val6, val7 and val8 fields are not present. Hence, the structure is 2 bytes in size.
THREE_BYTE_VAL
2
Implies that the optional val2 and val3 fields are present, while the optional val4, val5, val6, val7 and val8 fields are not present. Hence, the structure is 3 bytes in size.
FOUR_BYTE_VAL
3
Implies that the optional val2, val3, and val4 fields are all present, while the optional val5, val6, val7 and val8 fields are not present. Hence, the structure is 4 bytes in size.
FIVE_BYTE_VAL
4
Implies that the optional val2, val3, val4 and val5 fields are all present, while the optional val6, val7 and val8 fields are not present. Hence, the structure is 5 bytes in size.
SIX_BYTE_VAL
5
Implies that the optional val2, val3, val4, val5 and val6 fields are all present, while the optional val7 and val8 fields are not present. Hence, the structure is 6 bytes in size.
SEVEN_BYTE_VAL
6
Implies that the optional val2, val3, val4, val5, val6 and val7 fields are all present, while the optional val8 field is not present. Hence, the structure is 7 bytes in size.
EIGHT_BYTE_VAL
7
Implies that the optional val2, val3, val4, val5, val6, val7 and val8 fields are all present. Hence, the structure is 8 bytes in size.
val1 (5 bits): A 5-bit unsigned integer field containing the most significant 5 bits of the value represented by this structure.
val2 (1 byte, optional): An 8-bit unsigned integer containing the second most significant bits of the value represented by this structure.
val3 (1 byte, optional): An 8-bit unsigned integer containing the third most significant bits of the value represented by this structure.
val4 (1 byte, optional): An 8-bit unsigned integer containing the fourth most significant bits of the value represented by this structure.
val5 (1 byte, optional): An 8-bit unsigned integer containing the fifth most significant bits of the value represented by this structure.
val6 (1 byte, optional): An 8-bit unsigned integer containing the sixth most significant bits of the value represented by this structure.
val7 (1 byte, optional): An 8-bit unsigned integer containing the seventh most significant bits of the value represented by this structure.
val8 (1 byte, optional): An 8-bit unsigned integer containing the least significant bits of the value represented by this structure.