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 Int8 (8-bit), Int16 (16-bit), Int32 (32-bit), Int64 (64-bit), Int128 (128-bit), and Int (platform-controlled).

The unsigned integer data types are UInt8 (8-bit), UInt16 (16-bit), UInt32 (32-bit), UInt64 (64-bit), UInt128 (128-bit), and UInt (platform-controlled).


Arithmetic operations are faster with integer types than with other data types. They are fastest with the types Int and UInt in ViviFire.

Large integers


Small integers

If the full range of Int is more than what is necessary, then 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, then the runtime can possibly decrease the memory used. But operations with Int16 and Int8 are usually slower than with Int.

Unsigned integers

If you know that a variable must not hold a negative value, then the unsigned types are available. The unsigned types are UInt8, UInt16, UInt32, UInt, UInt64, and UInt128. Each of these data types can hold a positive integer two times larger than the related signed type (Int8, Int16, Int32, Int, Int64, and Int128). The performance of each unsigned type is the same as the related signed type. Thus, UInt and Int have the same very good performance.

Non-integer types

The non-integer numeric data types are 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), and Real (platform-controlled).



Small magnitudes


Small fractional numbers


See also