Both sides previous revisionPrevious revisionNext revision | Previous revision |
code:numberformats [2017/12/09 17:33] – Igor Yefmov | code:numberformats [2022/04/04 23:32] (current) – external edit 127.0.0.1 |
---|
An 8-bit unsigned or signed value representing a decimal range of ''[0..255]'' or ''[-128..127]'' respectively. Bits are ordered the "usual" way with the MSB on the left and LSB on the right. | An 8-bit unsigned or signed value representing a decimal range of ''[0..255]'' or ''[-128..127]'' respectively. Bits are ordered the "usual" way with the MSB on the left and LSB on the right. |
| |
A couple of examples (decimal == bits): | A couple of examples (decimal = bits): |
* ''1'' = ''00000001'' both signed and unsigned | * ''1'' = ''00000001'' both signed and unsigned |
* ''253'' = ''11111101'' (unsigned only) | * ''253'' = ''11111101'' (unsigned only) |
===== UFIX 8.8 ===== | ===== UFIX 8.8 ===== |
| |
This is a 16-bit value in which 8 MSB represent the unsigned integer part of the number and the 8 LSB represent the fractional part. The fractional value is the ''LSB x 256'', i.e. the smallest "increment" for this format is ''1/256'' or ''0.00390625''. | This is a 16-bit value in which 8 MSB represent the unsigned integer part of the number and the 8 LSB represent the fractional part. The fractional value is the ''LSB x 256'', i.e. the smallest "increment" for this format is ''1/256'' or ''0.00390625''. |
| |
Numbers in this format represent a decimal range of ''[0.0..256)''. | Numbers in this format represent a decimal range of ''[0.0..256)''. |
* ''0.0'' = ''0x00'', ''0x00'' | * ''0.0'' = ''0x00'', ''0x00'' |
* ''1.0'' = ''0x01'', ''0x00'' | * ''1.0'' = ''0x01'', ''0x00'' |
* ''1.5'' = ''0x01'', ''0xF0'' | * ''1.5'' = ''0x01'', ''0x80'' |
* ''127.3'' = ''0x7F'', ''0x4D'' - notice how the actual precise decimal number ''127 + 77/256'' is not **exactly** ''127.3'' but is an approximation with a precise decimal value of ''127.30078125'' | * ''127.3'' = ''0x7F'', ''0x4D'' - notice how the actual precise decimal number ''127 + 77/256'' is not **exactly** ''127.3'' but is an approximation of the precise decimal value of ''127.30078125'' |
* ''-1'' - unrepresentable | * ''-1'' - unrepresentable |
* ''256'' = ''0xFF'', ''0xFF'' - once again, the actual decimal number is "very close" and is in fact ''255.99609375'' | * ''256'' = ''0xFF'', ''0xFF'' - once again, the actual decimal number is "very close" and is in fact ''255.99609375'' |