Integer ranges
This commit is contained in:
parent
d29ec9ffc4
commit
0feff28d82
18
preserves.md
18
preserves.md
|
@ -1049,5 +1049,23 @@ Then, if `ttnn`=`0001`, `l` is the placeholder number; otherwise, `l`
|
|||
is the length of the body that follows, counted in bytes for `tt`=`01`
|
||||
and in `Repr`s for `tt`=`10`.
|
||||
|
||||
## Appendix. Binary SignedInteger representation
|
||||
|
||||
Languages that provide fixed-width machine word types may find the
|
||||
following table useful in encoding and decoding binary `SignedInteger`
|
||||
values.
|
||||
|
||||
| Integer range | Bytes required | Encoding (hex) |
|
||||
| --- | --- | --- |
|
||||
| -3 ≤ n < 13 (numbers -3..12 encoded specially) | 1 | `3X` |
|
||||
| -2<sup>7</sup> ≤ n < 2<sup>7</sup> (i8) | 2 | `41` `XX` |
|
||||
| -2<sup>15</sup> ≤ n < 2<sup>15</sup> (i16) | 3 | `42` `XX` `XX` |
|
||||
| -2<sup>23</sup> ≤ n < 2<sup>23</sup> (i24) | 4 | `43` `XX` `XX` `XX` |
|
||||
| -2<sup>31</sup> ≤ n < 2<sup>31</sup> (i32) | 5 | `44` `XX` `XX` `XX` `XX` |
|
||||
| -2<sup>39</sup> ≤ n < 2<sup>39</sup> (i40) | 6 | `45` `XX` `XX` `XX` `XX` `XX` |
|
||||
| -2<sup>47</sup> ≤ n < 2<sup>47</sup> (i48) | 7 | `46` `XX` `XX` `XX` `XX` `XX` `XX` |
|
||||
| -2<sup>55</sup> ≤ n < 2<sup>55</sup> (i56) | 8 | `47` `XX` `XX` `XX` `XX` `XX` `XX` `XX` |
|
||||
| -2<sup>63</sup> ≤ n < 2<sup>63</sup> (i64) | 9 | `48` `XX` `XX` `XX` `XX` `XX` `XX` `XX` `XX` |
|
||||
|
||||
<!-- Heading to visually offset the footnotes from the main document: -->
|
||||
## Notes
|
||||
|
|
Loading…
Reference in New Issue