Numeric Data Types
ViviFire supplies many numeric data types to use numbers with different formats. Integer types show as whole numbers, while non-integer types can show numbers with a fractional part.
To compare all the ViviFire data types, see Data Type Summary.
Integer types
The signed integer data types are as follows:
The unsigned integer data types are as follows:
Performance
Arithmetic operations are faster with integer types than with other data types.
Large integers
TODO
Small integers
If the full range of Int32
is more than what is necessary, Int16
is a possible alternative.
The type Int16
holds integer values in the range −32,768 thru 32,767.
For the smallest integer range, the type Int8
holds values from −128 thru 127.
Some code uses a large number of variables to hold small integers.
If your code uses the types Int16
and Int8
for its variables, the runtime can possibly decrease the memory used.
But operations with Int16
and Int8
are usually slower than with Int32
.
Unsigned integers
If you know that a variable must not hold a negative value, the unsigned types are available.
The unsigned types are UInt8
, UInt16
, UInt32
, UInt64
, and UInt128
.
Each of these data types can hold a positive integer two times larger than the related signed type (Int8
, Int16
, Int32
, Int64
, and Int128
).
The performance of each unsigned type is the same as the related signed type.
Thus, UInt32
and Int32
have the same performance.
Non-integer types
The non-integer numeric data types are as follows:
Fixed64
(64-bit fixed-point)Fixed128
(128-bit fixed-point)Real32
(32-bit floating-point)Real64
(64-bit floating-point)Real128
(128-bit floating-point)
Performance
TODO
Small magnitudes
TODO
Small fractional numbers
TODO