Here is how the types are related.
Datatype | Num Bytes | C++ TypeID | C TypeID | Fortran TypeID |
byte binary data (not to be confused with text/strings) | 1 | Byte,Int8 | BYTE,INT8 | 0 |
short (16bit) integer | 2 | Int16 | INT16 | 1 |
32bit integer | 4 | Int32 | INT32 | 2 |
64bit integer | 8 | Int64 | INT64 | 3 |
single precision floating point | 4 | Float32 | FLOAT32 | 4 |
double precision floating point | 8 | Float64 | FLOAT64 | 5 |
unsigned byte | 1 | uChar,uInt8 | UCHAR,UINT8 | 6 |
unsigned short (16 bit) integer | 2 | uInt16 | UINT16 | 7 |
unsigned 32bit integer | 4 | uInt32 | UINT32 | 8 |
unsigned 64bit integer | 8 | uInt64 | UINT64 | 9 |
special byte type for text data (to differentiate it from binary byte data) | 1 | Char,Char8,String | CHAR,CHAR8,STRING | 10 |
special type for unicode (16bit) text to differentiate from binary unsigned integer data | 2 | Unicode,Char16 | UNICODE,CHAR16 | 11 |
int IObase::nBytes(IObase::DataType datatype,int rank,int *dims)
int IOnBytes(int datatype,int rank,int *dims)
INTEGER IO_NBYTES(INTEGER datatype,INTEGER
rank,INTEGER dims(*))
int IObase::nElements(int rank,int *dims)
int IOnElements(int rank,int *dims)
INTEGER IO_NELEMENTS(INTEGER rank,INTEGER dims(*))
int IObase::sizeOf(IObase::DataType datatype)
int IOsizeOf(int datatype)
INTEGER IO_SIZEOF(INTEGER datatype)