# Data Type Summary

The table that follows shows the ViviFire data types, how much memory they use, and their value ranges.

ViviFire type | Approximate memory used | Value range | More information |
---|---|---|---|

`Boolean` |
Platform-controlled | True, False | |

`Char` |
4 bytes | ## 0 to 4.29 billion0 to 4,294,967,295 |
Unsigned; Unicode UTF-32 |

`DateTime` |
8 bytes | 1 January 0001 to 31 December 9999 | |

`Fixed64` |
8 bytes | ## −922 trillion to 922 trillion−922,337,203,685,477.5808 to 922,337,203,685,477.5807 |
Signed; Max 15 digits left of the decimal point and 4 to the right |

`Fixed128` |
16 bytes | ## −17 octillion to 17 octillion−17,014,118,346,046,923,173,168,730,371.5884105728 to 17,014,118,346,046,923,173,168,730,371.5884105727 |
Signed; Max 29 digits left of the decimal point and 10 to the right |

`Int` |
Platform-controlled | Platform-controlled | Signed integer type with good performance |

`Int8` |
1 byte | −128 to 127 | Signed; Max 3 decimal digits |

`Int16` |
2 bytes | −32,768 to 32767 | Signed; Max 5 decimal digits |

`Int32` |
4 bytes | ## −2.14 billion to 2.14 billion−2,147,483,648 to 2,147,483,647 |
Signed; Max 10 decimal digits |

`Int64` |
8 bytes | ## −9.22 quintillion to 9.22 quintillion−9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
Signed; Max 19 decimal digits |

`Int128` |
16 bytes | ## −170 undecillion to 170 undecillion−170,141,183,460,469,231,731,687,303,715,884,105,728 to 170,141,183,460,469,231,731,687,303,715,884,105,727 |
Signed; Max 39 decimal digits |

`Real` |
Platform-controlled | Platform-controlled | Floating-point type with good performance |

`Real32` |
4 bytes | ## −3.4…E38 – −1.4…E−45, 1.4…E−45 – 3.4…E38−3.4028235E+38 to −1.401298E−45 (negative) and 1.401298E−45 to 3.4028235E+38 (positive) |
Floating-point type |

`Real64` |
8 bytes | ## −1.79…E308 – −4.94…E−324, 4.94…E−324 – 1.79…E308−1.79769313486231570E+308 to −4.94065645841246544E−324 (negative)and 4.94065645841246544E−324 to 1.79769313486231570E+308 (positive) |
Floating-point type |

`Real128` |
16 bytes | ## −1.18…E4932 – −3.36…E−4932, 3.36…E−4932 – 1.18…E4932−1.189731495357231765085759326628007E+4932 to −3.362103143112093506262677817321753E−4932 (negative) and 3.362103143112093506262677817321753E−4932 to 1.189731495357231765085759326628007E+4932 (positive) |
Floating-point type |

SafeString | TBD bytes | 0 to TBD characters | Sanitized input |

`SBits` |
1–16 bytes | User-specified | Signed bit field |

`String` |
TBD bytes | 0 to TBD characters | |

`UBits` |
1–16 bytes | User-specified | Unsigned bit field |

`UInt` |
Platform-controlled | Platform-controlled | Unsigned integer type with good performance |

`UInt8` |
1 byte | 0 to 255 | Unsigned |

`UInt16` |
2 bytes | 0 to 65,535 | Unsigned; Max 5 decimal digits |

`UInt32` |
4 bytes | ## 0 to 4.29 billion0 to 4,294,967,295 |
Unsigned; Max 10 decimal digits |

`UInt64` |
8 bytes | ## 0 to 18.4 quintillion0 to 18,446,744,073,709,551,615 |
Unsigned; Max 20 decimal digits |

`UInt128` |
16 bytes | ## 0 to 340 undecillion0 to 340,282,366,920,938,463,463,374,607,431,768,211,455 |
Unsigned; Max 39 decimal digits |

User-made Struct | ~ bytes | ~ to ~ |