# uint64

64-bit unsigned integer arrays

## Description

Variables in MATLAB® of data type (class) `uint64` are stored as 8-byte (64-bit) unsigned integers. For example:

```y = uint64(10); whos y```
``` Name Size Bytes Class Attributes y 1x1 8 uint64 ```

## Creation

Some array creation functions allow you to specify the data type. For instance, `zeros(100,'uint64')` creates a 100-by-100 matrix of zeros of type `uint64`.

If you have an array of a different type, such as `double` or `single`, then you can convert that array to an array of type `uint64` by using the `uint64` function.

### Syntax

``Y = uint64(X)``

### Description

example

````Y = uint64(X)` converts the values in `X` to type `uint64`. Values outside the range [0, 264–1] map to the nearest endpoint.```

### Input Arguments

expand all

Input array, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: `double` | `single` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `logical` | `char`

## Examples

collapse all

Convert a double-precision variable to a 64-bit unsigned integer.

```x = 100; xtype = class(x)```
```xtype = 'double' ```
`y = uint64(x)`
```y = uint64 100 ```

Convert an array of large integers (larger than `flintmax`) to a 64-bit unsigned integer array. When you specify a numeric array input, precision can be lost because MATLAB initially represents the input as double precision by default.

`Y_inaccurate = uint64([72057594037539387 72057594037927935])`
```Y_inaccurate = 1x2 uint64 row vector 72057594037539384 72057594037927936 ```

To maintain precision when creating a 64-bit unsigned integer array, call `uint64` with each scalar element instead.

`Y_accurate = [uint64(72057594037539387) uint64(72057594037927935)]`
```Y_accurate = 1x2 uint64 row vector 72057594037539387 72057594037927935 ```

Starting in R2019b, you can also create the integer array accurately by using the hexadecimal or binary values of the integers. For more information, see Hexadecimal and Binary Values.

`Y_accurate = [0xFFFFFFFFFA123Bu64 0xFFFFFFFFFFFFFFu64]`
```Y_accurate = 1x2 uint64 row vector 72057594037539387 72057594037927935 ```

## Tips

• When you create a numeric array of large integers (larger than `flintmax`), MATLAB initially represents the input as double precision by default. Precision can be lost when you convert this input to the `uint64` data type. To maintain precision, call `uint64` with each scalar element of the array instead. For example, see Convert Array of Large Integers Without Loss of Precision.

• If you have a text formatted in a character array or string scalar that contains large integers, then you can read this text and return an accurate 64-bit unsigned integer array by using the `sscanf` function. You can specify the format of the input fields so that `sscanf` directly converts the text that represents integers in decimals, octals, or hexadecimals without first converting them to Unicode code values. For comparison, `uint64(X)` converts a character vector input to an integer array that represents the Unicode code values for each character.

## Version History

Introduced before R2006a