Tipos que contienen números enteros: char, short, int, long, long long
Echemos un vistazo a algunos ejemplos:
char cvar = 50; char cvar = 50; short svar = 50; int ivar = 50; long lvar1 = 50; long lvar2 = 50;
Operadores aritméticos básicos:
La mayoría está familiarizada con los operadores aritméticos básicos y el orden de precedencia: +, -, *, /
A continuación, se muestran algunos ejemplos de cómo utilizar el operador unario: ++ y -:
Expresión | Equivalente a | También equivalente a |
cvar + = 5; | cvar = cvar + 5; | |
++ cvar; | cvar ++; | cvar = cvar + 1; |
--cvar; | cvar--; | cvar = cvar - 1; |
¡Cuidado con la variable ++ frente a la variable ++!
++ variable
int x = 10, y = 20; X = ++ y;
Nota: después de esta operación: X = 21, e Y también = 21.
variable ++
int x = 10, y = 20; X = y ++;
Nota: después de esta operación: X = 20 e Y = 21.
Comparar el tipo de datos enteros
Hay un grupo o tipo de datos que permite valores positivos y negativos: "con signo". Sin embargo, no es necesario especificarlo, ya que está implícito. Vea abajo:
Tipo de datos | Valor más pequeño | Mayor valor |
carbonizarse | -2 7 o -128 | 2 7 - 1 o 127 |
corto | -2 15 o -32,768 | 2 15 - 1 o 32,767 |
En t | -2 31 o -2,147,483,648 | 2 31 - 1 o 2,147,483,647 |
largo | -2 31 o -2,147,483,648 | 2 31 - 1 o 2,147,483,647 |
largo largo | -2 63 o -9,223,372,036,854,775,808 | 2 63 - 1 o 9,223,372,036,854,775,807 |
Hay un grupo o tipo de datos que solo permite un valor positivo: "sin firmar".
Tipo de datos | Valor más pequeño | Mayor valor |
char sin firmar | 0 | 2 8 - 1 o 255 |
corto sin firmar | 0 | 2 16 - 1 o 65.535 |
int sin firmar | 0 | 2 32 - 1 o 4,294,967,295 |
largo sin firmar | 0 | 2 32 - 1 o 4,294,967,295 |
sin firmar mucho tiempo | 0 | 2 64 - 1 o 18,446,744,073,709,551,615 |
¿Cómo verifica el tamaño de los datos?
Por el momento, debe conocer el operador sizeof ()
. Esto proporciona la unidad de almacenamiento de memoria llamada "bytes", que se tratará un poco en la siguiente sección.
Muestra para indicarle el número de bytes que debe escribir con el operador sizeof ()
. Pruebe esto para verificarlos usted mismo. Si cambia a otro controlador, siempre puede hacer lo siguiente para verificar.
Brain.Screen.setFont (fontType :: mono30); Brain.Screen.printAt (1, 20, "char tiene %d bytes", sizeof (char)); Brain.Screen.printAt (1, 50, "corto tiene %d bytes", tamaño de (corto)); Brain.Screen.printAt (1, 80, "int tiene %d bytes", sizeof (int)); Brain.Screen.printAt (1, 110, "largo tiene %d bytes", tamaño de (largo)); Brain.Screen.printAt (1, 140, "long long tiene %d bytes", sizeof (long long)); Brain.Screen.printAt (1, 170, "float tiene %d bytes", sizeof (float)); Brain.Screen.printAt (1, 200, "el doble tiene %d bytes", tamaño de (doble));
¿Qué significa un byte?
Un "Byte" es una unidad estándar de almacenamiento de datos.
Un byte = 8 bits. Un bit es la unidad de memoria más pequeña que solo puede tener el valor de 1 y 0 (valor binario). Pero, la unidad más pequeña de memoria que puede adquirir del sistema es 1 byte; por lo que no puede pedir 1,5 bytes, etc.
Echemos un vistazo a char. Es lo suficientemente corto para mostrarse fácilmente.
Si todo está lleno de 1, obtienes 28-1. Este valor debe ser el valor máximo de "unsigned char" que debe contener.
El sistema reserva el bit de orden más alto para dar un valor negativo. Por lo tanto, el valor máximo de un "carácter" oscila entre -128 y 127. Sin embargo, la capacidad sigue siendo la misma que la del "carácter sin firmar" a pesar de una diferencia en el rango de datos.
En la computadora, usa una operación llamada Complemento a Dos. Esto es parte de los temas bajo Operación bit a bit, que está fuera del alcance de este documento. Más sobre este tema se discutirá en otro documento.
¿Cuál es la diferencia entre char e int?
A continuación, se muestran algunos usos comunes de "char" e "int":
char var1 = "9"; int var2 = 9;
Es un error común pensar que "char" solo puede contener símbolos como "a", "b" o "9". Eso es incorrecto.
De hecho, el tipo "char" es el mismo que el tipo "int", excepto que la capacidad de char es de solo 1 byte y la capacidad de int es de 4 bytes. Por lo tanto, el rango de tamaño de los datos es diferente entre los dos. Puede ver eso en la tabla de rango de datos anterior.
Los siguientes segmentos de código le darán una visión más clara de char e int.
int iX = '0'; char cX1 = 49; char cX2 = 50; Brain.Screen.printAt (3, 20, "int representación de '%c' = %d", iX, iX); Brain.Screen.printAt (3, 50, "int representación de '%c' = %d", cX1, cX1); Brain.Screen.printAt (3, 80, "int representación de '%c' = %d", cX2, cX2); Brain.Screen.printAt (3, 140, "Entonces '%c' - '%c'= %d ", cX2, iX, cX2 - cX1);
Producción:
int representación de '0' = 48 int representación de '1' = 49 int representación de '2' = 50 Entonces '2' - '0' = 1
Quizás se pregunte: ¿Por qué "0" muestra 48?
Esto conducirá a los temas llamados conversión de “Código ASCII”. El estándar ASCII es uno de los grandes hitos de IEEE publicado en 1963. Esto está fuera del alcance de este artículo. Se le anima a buscar la Tabla de códigos ASCII en línea. Encontrará una gran cantidad de información en línea sobre la tabla de códigos ASCII.