Modificadores de tipo C ++: corto, largo, firmado y sin firmar

En este tutorial, aprenderemos sobre modificadores de tipo y cómo usarlos en la programación C ++ con la ayuda de ejemplos.

En la programación C ++, los modificadores de tipo se utilizan para cambiar el significado de los tipos de datos fundamentales.

Hay cuatro modificadores de tipo en C ++.

  • short
  • long
  • signed
  • unsigned

He aquí un breve resumen:

Tipo de datos Tamaño (en bytes) Sentido
signed int 4 usado para enteros (equivalente a int)
unsigned int 4 solo puede almacenar enteros no negativos
short 2 utilizado para números enteros pequeños (rango -32768 a 32767 )
long al menos 4 utilizado para enteros grandes (equivalente a long int)
unsigned long 4 utilizado para números enteros positivos grandes o 0 (equivalente a unsigned long int)
long long 8 utilizado para enteros muy grandes (equivalente a long long int).
unsigned long long 8 utilizado para enteros positivos muy grandes o 0 (equivalente a unsigned long long int)
long double 8 utilizado para grandes números de coma flotante
signed char 1 utilizado para caracteres (rango garantizado de -127 a 127 )
unsigned char 1 utilizado para caracteres (rango 0 a 255 )

Modificador de tipo corto

Podemos usar shortpara números enteros pequeños (en el rango −32,767de +32,767).

Por ejemplo,

 // small integer short a = 12345;

Aquí, a es una shortvariable entera.

Nota: short es equivalente a short int.

Modificador de tipo largo

Si necesitamos almacenar un entero grande (en el rango de -2147483647 a 2147483647), podemos usar el especificador de tipo long. Por ejemplo,

 // large integer long b = 123456;

Nota: long es equivalente a long int.

El modificador de tipo largo también se puede utilizar con doublevariables.

 // large floating-point number long double c = 0.333333333333333333L;

Nota: Para indicar long double, usamos el Lsufijo. Si no usamos el sufijo L, es un doublevalor al que se convierte long double(lo que puede resultar en la pérdida de datos).

largo largo

longse puede repetir dos veces para crear el long longtipo. Este tipo se utiliza para números aún mayores que long. long longEl modificador de tipo solo se puede usar con int.

Por ejemplo,

 // long long int long long num = 12345678;

Modificadores firmados y no firmados

Las variables con signo pueden contener enteros tanto positivos como negativos, incluido el cero . Por ejemplo,

 // positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;

Aquí,

  • x tiene un número entero de valor positivo
  • y tiene un número entero con valor negativo
  • z contiene un número entero de valor cero

Nota:

  • Por defecto, los enteros son signed. Por lo tanto, en lugar de signed int, podemos usar directamente int.
  • signed y unsigned solo se puede usar con tipos int y char.

Las variables sin signo solo pueden contener valores enteros no negativos. Por ejemplo,

 // positive valued integer unsigned int x = 2; unsigned int y = 0;

Aquí,

  • x tiene un número entero de valor positivo
  • y tiene cero

En general, una intvariable puede almacenar un rango de valores de -2,147,483,648 a 2,147,483,647 . Considerando que, una unsigned invariable t puede almacenar un rango de valores de 0 a 4,294,967,295 .

carácter firmado, sin firmar y sencillo

C ++ tiene 3 tipos de char diferentes: char, signed chary unsigned char. En la práctica, existen básicamente solo 2 tipos: signed chary unsigned char.

Esto se debe a que, aunque charno es lo mismo que signed charo unsigned charen C ++ estándar, los diferentes compiladores tratan charcomo cualquiera signed charo unsigned charsegún sus propias preferencias.

Nota: Cuando solo usamos en charlugar de signed charo unsigned char, este tipo se conoce como char simple .

Como habrás adivinado, signed charpuede almacenar enteros positivos y negativos, mientras unsigned charque solo puede almacenar enteros positivos (incluido el 0 ).

El rango garantizado de valores enteros que se signed charpueden almacenar es de -127 a 127, mientras que el rango de unsigned chares de 0 a 255 .

 // plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;

Aquí,

  • plain_1 contiene un número entero con valor positivo
  • plain_2 contiene un número entero de valor cero
  • sin_1 contiene un número entero con valor positivo
  • sin_2 contiene un número entero de valor cero
  • sin_3 contiene un número entero con valor negativo
  • unsin_1 contiene un número entero con valor negativo
  • unsin_2 contiene un número entero de valor cero

Nota: Es preferible no utilizar caracteres simples para realizar manipulaciones numéricas; En su lugar, se deben usar caracteres firmados o sin firmar. El carácter simple solo debe usarse para almacenar valores de caracteres.

Articulos interesantes...