Main Content

uint64

Arreglos enteros sin signo de 64 bits

Descripción

Las variables de MATLAB® de tipo de datos (clase) uint64 se almacenan como enteros sin signo de 8 bytes (64 bits). Por ejemplo:

y = uint64(10);
whos y
  Name      Size            Bytes  Class     Attributes

  y         1x1                 8  uint64                        

Para obtener más información sobre los tipos de enteros, consulte Valores enteros.

Creación

Algunas funciones de creación de arreglos permiten especificar el tipo de datos. Por ejemplo, zeros(100,'uint64') crea una matriz de ceros de 100 por 100 de tipo uint64.

Si tiene un arreglo de un tipo diferente, como double o single, puede convertir este arreglo a un arreglo de tipo uint64 utilizando la función uint64.

Descripción

ejemplo

Y = uint64(X) convierte los valores en X a tipo uint64. Los valores fuera del intervalo [0, 264–1] se asignan al punto final más cercano.

Argumentos de entrada

expandir todo

Arreglo de entrada, especificado como escalar, vector, matriz o arreglo multidimensional.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | logical | char

Ejemplos

contraer todo

Convierta una variable de doble precisión a un entero sin signo de 64 bits.

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

Convierta un arreglo de valores enteros grandes (mayores que flintmax) en un arreglo de valores enteros sin signo de 64 bits. Cuando especifica una entrada de arreglo numérico, es posible que se pierda precisión porque MATLAB representa inicialmente la entrada como de doble precisión de forma predeterminada.

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

   72057594037539384   72057594037927936

Para preservar la precisión al crear un arreglo de valor entero sin signo de 64 bits, llame a uint64 con cada elemento escalar.

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

   72057594037539387   72057594037927935

A partir de la versión R2019b, también puede crear el arreglo de enteros con precisión utilizando los valores hexadecimales o binarios de los enteros. Para obtener más información, consulte Valores binarios y hexadecimales.

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

   72057594037539387   72057594037927935

Sugerencias

  • Cuando crea un arreglo numérico de enteros grandes (mayores que flintmax), MATLAB representa inicialmente la entrada como de doble precisión de forma predeterminada. Se puede perder precisión al convertir esta entrada al tipo de datos uint64. Para mantener la precisión, llame a uint64 con cada elemento escalar del arreglo. Por ejemplo, consulte Convertir un arreglo de valores enteros grandes sin perder precisión.

  • Si tiene un texto formateado en un arreglo de caracteres o un escalar de cadenas que contiene valores enteros grandes, puede leerlo y devolver un arreglo de valores enteros sin signo de 64 bits preciso utilizando la función sscanf. Puede especificar el formato de los campos de entrada para que sscanf convierta directamente el texto que representa enteros en decimales, octales o hexadecimales sin convertirlos primero en valores de código Unicode. A modo comparativo, uint64(X) convierte una entrada de vector de caracteres en un arreglo de enteros que representa los valores del código Unicode para cada carácter.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a