# 6.1.19 UNSIGNED VARBIGINT

Part of: [6 Language](6-language.md) › [6.1 Data Types](6-1-data-types.md)

The HDFql UNSIGNED VARBIGINT data type stores values between 0 and 18,446,744,073,709,551,615 and occupies 8 bytes in memory (per element). It represents the data type of an HDF5 (variable-length) H5T_NATIVE_ULLONG dataset/attribute or of a result set that stores variable-length elements of this type (which can be retrieved using the [HDFQL_CURSOR_GET_UNSIGNED_BIGINT](5-2-44-hdfql-cursor-get-unsigned-bigint.md) and [HDFQL_SUBCURSOR_GET_UNSIGNED_BIGINT](5-2-45-hdfql-subcursor-get-unsigned-bigint.md) functions when working with cursors). Depending on the programming language supported by HDFql, the UNSIGNED VARBIGINT data type is represented by:

- In C, the “unsigned long long” data type.
- In C++, the “unsigned long long” data type.
- In Java[^28], the “ArrayList\<Long>” class.
- In Python, the “uint64” NumPy data type.
- In C#, the “UInt64” data type (or corresponding alias “ulong”).
- In Fortran[^29], the “INTEGER(KIND = 8)” data type.
- In R[^30], the “integer64” bit64 data type.
- In MATLAB, the “uint64” data type.

[^28]: By design, Java does not support unsigned data types. Therefore, the programmer is responsible for converting a signed number to its equivalent unsigned representation in Java.
[^29]: Although there have been some efforts to introduce unsigned data types in Fortran, none are currently standardized. Therefore, the programmer is responsible for converting a signed number to its equivalent unsigned representation in Fortran.
[^30]: By design, R does not support unsigned data types. Therefore, the programmer is responsible for converting a signed number to its equivalent unsigned representation in R.
