Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Combinando tipos enteros a diferencia

Visión general

Si combina diferentes tipos enteros en una matriz (por ejemplo, firmado con enteros sin signo u 8 bits con enteros de 16 bits), devuelve una matriz en la que todos los elementos son de un tipo común. establece todos los elementos de la matriz resultante en el tipo de datos del elemento más a la izquierda de la matriz de entrada.MATLAB®MATLAB Por ejemplo, el resultado de la siguiente concatenación es un vector de enteros con signo de 3 16 bits:

A = [int16(450) uint8(250) int32(1000000)] 

Ejemplo de combinación de tamaños enteros a diferencia

Después de deshabilitar las advertencias de concatenación de enteros como se muestra anteriormente, concatenar los dos números siguientes una vez y, a continuación, cambiar su orden. El valor devuelto depende del orden en que se concatenan los enteros. El tipo más a la izquierda determina el tipo de datos para todos los elementos del vector:

A = [int16(5000) int8(50)] A =    5000   50  B = [int8(50) int16(5000)] B =    50   127 

La primera operación devuelve un vector de enteros de 16 bits. El segundo devuelve un vector de enteros de 8 bits. El elemento se establece en, el valor máximo para un entero de 8 bits con signo.int16(5000)127

Las mismas reglas se aplican a la concatenación vertical:

C = [int8(50); int16(5000)] C =     50    127 

Nota

Puede encontrar los valores máximos o mínimos para cualquier tipo entero mediante las funciones y.MATLABintmaxintmin Para tipos de punto flotante, use y.realmaxrealmin

Ejemplo de combinación firmada con unsigned

Ahora haga el mismo ejercicio con números enteros firmados y sin signo. De nuevo, el elemento más a la izquierda determina el tipo de datos para todos los elementos de la matriz resultante:

A = [int8(-100) uint8(100)] A =    -100   100  B = [uint8(100) int8(-100)] B =    100   0 

El elemento se establece en cero porque ya no está firmado.int8(-100)

evalúa cada elemento concatenándolos en una matriz combinada.MATLABprior to En otras palabras, la siguiente instrucción se evalúa como un entero de 8 bits con signo (igual a 50) y un entero sin firma de 8 bits (unsigned-50 se establece en cero) antes de que se combinen los dos elementos. Después de la concatenación, el segundo elemento conserva su valor cero pero adopta el tipo sin signo:int8

A = [int8(50), uint8(-50)] A =   50    0