Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2025-11-11 The HDF5 Field Guide

- Main Page
- Getting started
- User Guide
- Reference Manual
- Cookbook
- Technical Notes
- RFCs
- Specifications
- Glossary
- Full-Text Search
- About

Loading...
Searching...
No Matches
HDF5 Predefined Datatypes

Navigate back: Main / HDF5 Reference Manual

# HDF5 Predefined Datatypes

The following datatypes are predefined in HDF5.

Predefined IEEE Floating Point Datatypes
Datatype | Description
--- | ---
H5T_IEEE_F16BE | 16-bit big-endian IEEE floating point
H5T_IEEE_F16LE | 16-bit little-endian IEEE floating point
H5T_IEEE_F32BE | 32-bit big-endian IEEE floating point
H5T_IEEE_F32LE | 32-bit little-endian IEEE floating point
H5T_IEEE_F64BE | 64-bit big-endian IEEE floating point
H5T_IEEE_F64LE | 64-bit little-endian IEEE floating point

Predefined Alternative Floating Point Datatypes
Datatype | Description
--- | ---
H5T_FLOAT_BFLOAT16BE | 16-bit big-endian bfloat16 floating point
H5T_FLOAT_BFLOAT16LE | 16-bit little-endian bfloat16 floating point
H5T_FLOAT_F8E4M3 | 8-bit FP8 E4M3 (4 exponent bits, 3 mantissa bits) floating point
H5T_FLOAT_F8E5M2 | 8-bit FP8 E5M2 (5 exponent bits, 2 mantissa bits) floating point

Predefined Complex Number Datatypes
Datatype | Description
--- | ---
H5T_COMPLEX_IEEE_F16BE | Complex number of 2 16-bit big-endian IEEE floating point numbers
H5T_COMPLEX_IEEE_F16LE | Complex number of 2 16-bit little-endian IEEE floating point numbers
H5T_COMPLEX_IEEE_F32BE | Complex number of 2 32-bit big-endian IEEE floating point numbers
H5T_COMPLEX_IEEE_F32LE | Complex number of 2 32-bit little-endian IEEE floating point numbers
H5T_COMPLEX_IEEE_F64BE | Complex number of 2 64-bit big-endian IEEE floating point numbers
H5T_COMPLEX_IEEE_F64LE | Complex number of 2 64-bit little-endian IEEE floating point numbers

Predefined Standard Datatypes
Datatype | Description
--- | ---
H5T_STD_I8BE | 8-bit big-endian signed integer (2's complement)
H5T_STD_I8LE | 8-bit little-endian signed integer (2's complement)
H5T_STD_I16BE | 16-bit big-endian signed integer (2's complement)
H5T_STD_I16LE | 16-bit little-endian signed integer (2's complement)
H5T_STD_I32BE | 32-bit big-endian signed integer (2's complement)
H5T_STD_I32LE | 32-bit little-endian signed integer (2's complement)
H5T_STD_I64BE | 64-bit big-endian signed integer (2's complement)
H5T_STD_I64LE | 64-bit little-endian signed integer (2's complement)
H5T_STD_U8BE | 8-bit big-endian unsigned integer
H5T_STD_U8LE | 8-bit little-endian unsigned integer
H5T_STD_U16BE | 16-bit big-endian unsigned integer
H5T_STD_U16LE | 16-bit little-endian unsigned integer
H5T_STD_U32BE | 32-bit big-endian unsigned integer
H5T_STD_U32LE | 32-bit little-endian unsigned integer
H5T_STD_U64BE | 64-bit big-endian unsigned integer
H5T_STD_U64LE | 64-bit little-endian unsigned integer
H5T_STD_B8BE | 8-bit big-endian bitfield
H5T_STD_B8LE | 8-bit little-endian bitfield
H5T_STD_B16BE | 16-bit big-endian bitfield
H5T_STD_B16LE | 16-bit little-endian bitfield
H5T_STD_B32BE | 32-bit big-endian bitfield
H5T_STD_B32LE | 32-bit little-endian bitfield
H5T_STD_B64BE | 64-bit big-endian bitfield
H5T_STD_B64LE | 64-bit little-endian bitfield
H5T_STD_REF_OBJ | Object reference
H5T_STD_REF_DSETREG | Dataset region reference
H5T_STD_REF | Generic reference

Predefined UNIX-specific Datatypes
Datatype | Description
--- | ---
H5T_UNIX_D32BE | 32-bit big-endian
H5T_UNIX_D32LE | 32-bit little-endian
H5T_UNIX_D64BE | 64-bit big-endian
H5T_UNIX_D64LE | 64-bit little-endian

Predefined String Datatypes
Datatype | Description
--- | ---
H5T_C_S1 | String datatype in C (size defined in bytes rather than in bits)
H5T_FORTRAN_S1 | String datatype in Fortran (as defined for the HDF5 C library)

Predefined Intel-specific Datatypes
Datatype | Description
--- | ---
H5T_INTEL_I8 | 8-bit little-endian signed integer (2's complement)
H5T_INTEL_I16 | 16-bit little-endian signed integer (2's complement)
H5T_INTEL_I32 | 32-bit little-endian signed integer (2's complement)
H5T_INTEL_I64 | 64-bit little-endian signed integer (2's complement)
H5T_INTEL_U8 | 8-bit little-endian unsigned integer
H5T_INTEL_U16 | 16-bit little-endian unsigned integer
H5T_INTEL_U32 | 32-bit little-endian unsigned integer
H5T_INTEL_U64 | 64-bit little-endian unsigned integer
H5T_INTEL_B8 | 8-bit little-endian bitfield
H5T_INTEL_B16 | 16-bit little-endian bitfield
H5T_INTEL_B32 | 32-bit little-endian bitfield
H5T_INTEL_B64 | 64-bit little-endian bitfield
H5T_INTEL_F32 | 32-bit little-endian IEEE floating point
H5T_INTEL_F64 | 64-bit little-endian IEEE floating point

Predefined DEC Alpha-specific Datatypes
Datatype | Description
--- | ---
H5T_ALPHA_I8 | 8-bit little-endian signed integer (2's complement)
H5T_ALPHA_I16 | 16-bit little-endian signed integer (2's complement)
H5T_ALPHA_I32 | 32-bit little-endian signed integer (2's complement)
H5T_ALPHA_I64 | 64-bit little-endian signed integer (2's complement)
H5T_ALPHA_U8 | 8-bit little-endian unsigned integer
H5T_ALPHA_U16 | 16-bit little-endian unsigned integer
H5T_ALPHA_U32 | 32-bit little-endian unsigned integer
H5T_ALPHA_U64 | 64-bit little-endian unsigned integer
H5T_ALPHA_B8 | 8-bit little-endian bitfield
H5T_ALPHA_B16 | 16-bit little-endian bitfield
H5T_ALPHA_B32 | 32-bit little-endian bitfield
H5T_ALPHA_B64 | 64-bit little-endian bitfield
H5T_ALPHA_F32 | 32-bit little-endian IEEE floating point
H5T_ALPHA_F64 | 64-bit little-endian IEEE floating point

Predefined MIPS-specific Datatypes
Datatype | Description
--- | ---
H5T_MIPS_I8 | 8-bit big-endian signed integer (2's complement)
H5T_MIPS_I16 | 16-bit big-endian signed integer (2's complement)
H5T_MIPS_I32 | 32-bit big-endian signed integer (2's complement)
H5T_MIPS_I64 | 64-bit big-endian signed integer (2's complement)
H5T_MIPS_U8 | 8-bit big-endian unsigned integer
H5T_MIPS_U16 | 16-bit big-endian unsigned integer
H5T_MIPS_U32 | 32-bit big-endian unsigned integer
H5T_MIPS_U64 | 64-bit big-endian unsigned integer
H5T_MIPS_B8 | 8-bit big-endian bitfield
H5T_MIPS_B16 | 16-bit big-endian bitfield
H5T_MIPS_B32 | 32-bit big-endian bitfield
H5T_MIPS_B64 | 64-bit big-endian bitfield
H5T_MIPS_F32 | 32-bit big-endian IEEE floating point
H5T_MIPS_F64 | 64-bit big-endian IEEE floating point

Predefined Native Datatypes
Datatype | Description
--- | ---
H5T_NATIVE_CHAR | C-style char
H5T_NATIVE_SCHAR | C-style signed char
H5T_NATIVE_UCHAR | C-style unsigned signed char
H5T_NATIVE_SHORT | C-style short
H5T_NATIVE_USHORT | C-style unsigned short
H5T_NATIVE_INT | C-style int
H5T_NATIVE_UINT | C-style unsigned int
H5T_NATIVE_LONG | C-style long
H5T_NATIVE_ULONG | C-style unsigned long
H5T_NATIVE_LLONG | C-style long long
H5T_NATIVE_ULLONG | C-style unsigned long long
H5T_NATIVE_FLOAT16 | C-style _Float16 (May be H5I_INVALID_HID if platform doesn't support _Float16 type)
H5T_NATIVE_FLOAT | C-style float
H5T_NATIVE_DOUBLE | C-style double
H5T_NATIVE_LDOUBLE | C-style long double
H5T_NATIVE_FLOAT_COMPLEX | C-style float _Complex (MSVC _Fcomplex) (May be H5I_INVALID_HID if platform doesn't support float _Complex / _Fcomplex type)
H5T_NATIVE_DOUBLE_COMPLEX | C-style double _Complex (MSVC _Dcomplex) (May be H5I_INVALID_HID if platform doesn't support double _Complex / _Dcomplex type)
H5T_NATIVE_LDOUBLE_COMPLEX | C-style long double _Complex (MSVC _Lcomplex) (May be H5I_INVALID_HID if platform doesn't support long double _Complex / _Lcomplex type)
H5T_NATIVE_B8 | 8-bit bitfield based on native types
H5T_NATIVE_B16 | 16-bit bitfield based on native types
H5T_NATIVE_B32 | 32-bit bitfield based on native types
H5T_NATIVE_B64 | 64-bit bitfield based on native types
H5T_NATIVE_OPAQUE | opaque unit based on native types
H5T_NATIVE_HADDR | address type based on native types
H5T_NATIVE_HSIZE | size type based on native types
H5T_NATIVE_HSSIZE | signed size type based on native types
H5T_NATIVE_HERR | error code type based on native types
H5T_NATIVE_HBOOL | Boolean type based on native types

Predefined ANSI C9x-specific Native Integer Datatypes
Datatype | Description
--- | ---
H5T_NATIVE_INT8 | 8-bit signed integer (2's complement)
H5T_NATIVE_UINT8 | 8-bit unsigned integer
H5T_NATIVE_INT_LEAST8 | 8-bit signed integer (2's complement) with storage to use least amount of space
H5T_NATIVE_UINT_LEAST8 | 8-bit unsigned integer with storage to use least amount of space
H5T_NATIVE_INT_FAST8 | 8-bit signed integer (2's complement) with storage to maximize performance
H5T_NATIVE_UINT_FAST8 | 8-bit unsigned integer with storage to maximize performance
H5T_NATIVE_INT16 | 16-bit signed integer (2's complement)
H5T_NATIVE_UINT16 | 16-bit unsigned integer
H5T_NATIVE_INT_LEAST16 | 16-bit signed integer (2's complement) with storage to use least amount of space
H5T_NATIVE_UINT_LEAST16 | 16-bit unsigned integer with storage to use least amount of space
H5T_NATIVE_INT_FAST16 | 16-bit signed integer (2's complement) with storage to maximize performance
H5T_NATIVE_UINT_FAST16 | 16-bit unsigned integer with storage to maximize performance
H5T_NATIVE_INT32 | 32-bit signed integer (2's complement)
H5T_NATIVE_UINT32 | 32-bit unsigned integer
H5T_NATIVE_INT_LEAST32 | 32-bit signed integer (2's complement) with storage to use least amount of space
H5T_NATIVE_UINT_LEAST32 | 32-bit unsigned integer with storage to use least amount of space
H5T_NATIVE_INT_FAST32 | 32-bit signed integer (2's complement) with storage to maximize performance
H5T_NATIVE_UINT_FAST32 | 32-bit unsigned integer with storage to maximize performance
H5T_NATIVE_INT64 | 64-bit signed integer (2's complement)
H5T_NATIVE_UINT64 | 64-bit unsigned integer
H5T_NATIVE_INT_LEAST64 | 64-bit signed integer (2's complement) with storage to use least amount of space
H5T_NATIVE_UINT_LEAST64 | 64-bit unsigned integer with storage to use least amount of space
H5T_NATIVE_INT_FAST64 | 64-bit signed integer (2's complement) with storage to maximize performance
H5T_NATIVE_UINT_FAST64 | 64-bit unsigned integer with storage to maximize performance

Navigate back: Main / Specifications