Main Content

int64

Arreglos de enteros con signo de 64 bits

Descripción

Las variables en MATLAB® del tipo de datos (clase) int64 se almacenan como enteros con signo de 8 bytes (64 bits). Por ejemplo:

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

  y         1x1                 8  int64                    

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,'int64') crea una matriz de ceros de 100 por 100 de tipo int64.

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

Sintaxis

Descripción

ejemplo

Y = int64(X) convierte los valores en X a tipo int64. Los valores fuera del intervalo [–263, 263–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 | uint8 | uint16 | uint32 | uint64 | logical | char

Ejemplos

contraer todo

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

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

Convierta un arreglo de enteros grandes (mayores que flintmax) en uno de enteros con 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 = int64([-72057594035891654 81997179153022975])
Y_inaccurate = 1x2 int64 row vector

   -72057594035891656    81997179153022976

Para mantener la precisión al crear un arreglo de enteros con signo de 64 bits, llame a int64 con cada elemento escalar.

Y_accurate = [int64(-72057594035891654) int64(81997179153022975)]
Y_accurate = 1x2 int64 row vector

   -72057594035891654    81997179153022975

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 = [0xFF000000001F123As64 0x1234FFFFFFFFFFFs64]
Y_accurate = 1x2 int64 row vector

   -72057594035891654    81997179153022975

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 int64. Para mantener la precisión, llame a int64 con cada elemento escalar del arreglo. Por ejemplo, consulte Convertir un arreglo de valores enteros grandes sin perder precisión.

  • Si tiene texto formateado en un arreglo de caracteres o escalar de cadena que contiene enteros grandes, puede leer este texto y devolver un arreglo exacto de enteros con signo de 64 bits usando 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, int64(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