Imported from previous forum
[ original email was from janaka Sooriyaarachchi - janakas@millenniumit.com ]
If base value is -9223372036854775808 and input value is 9223372036854775807 then delta value is
(-9223372036854775808) - 9223372036854775807 = -18446744073709551615.
then that delta value is exceed the 64 bit integer range.
In such case which transfer encoding method should be use for 64bit integers with Delta operator?
Hi Janaka,
you need to use a 65-bit encoding of the delta and you need to process the two 64-bit quantities with possible over/underflow in mind.
For the rest of the readers: This is an implementation issue.
The wire encoding already has to handle 64 bit quantities (requiring 10 bytes of wire data). The same wire representation would handle 65 bits (indeed 10 SBIT-coded bytes can represent up to 70 bits of data).
It is rather about your internal representation of the delta. You have to find a way to detect and process the 65-bit case as a 64-bit quantity may over/underflow if you perform a 64-bit subtraction operation between two 64-bit quantities.
(Please refer to the Note in section 6.3.7.1 of the FAST specification)
Best,
Rolf
If base value is -9223372036854775808 and input value is 9223372036854775807 then delta value is
(-9223372036854775808) - 9223372036854775807 = -18446744073709551615.
then that delta value is exceed the 64 bit integer range.In such case which transfer encoding method should be use for 64bit integers with Delta operator?