Tipos de Datos en C:
Introducción al lenguaje C
Qué aprenderás sobre el lenguaje C
¿Qué es el lenguaje C?
¿Cómo funcionan las computadoras?
¿Por qué aprender C?
Instalando C en Windows
Instalando C en Linux
Estructura de un programa C
Estructura de un programa C
Tipos de Datos en el lenguaje C
Tipos de datos
Tipo de dato void
Tipo de dato Enum
Tipo de dato char
Variables en el lenguaje C
Declaración de variables
Declaración avanzada de variables
Declaración de constantes
Preprocessor directives: Define
Conclusiones
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Adquiere por un año todos los cursos, escuelas y certificados por un precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 84
Preguntas 19
Tipos de Datos en C:
Basic Types:
Aritmeticos:
(A) Valores enteros:
int 2 o 4 Bytes permite tener numeros negativos y positivos
2 Bytes -32,768 to 32,757
4 bytes -2,147,483,648 to 2,147,483
unsigned int 2 o 4 bytes no nos permite tener datos negativos
2 Bytes 0 to 65.535
4 bytes 0 to 4,294,967,295
short 2 Bytes
2 Bytes -32,768 to 32,767
unsigned short 2 Bytes 0 yo 65,535
long 8 Bytes
long 8 bytes -9223372036854775808 to 9223372036854775807
unsigned long 8 Bytes 0 to 18446744073709551615
(B) De punto FLorante:
float 4 Bytes 1.2E-38 to 3.4E+386 ( 6 decimal places)
double 8 Bytes 2.3E-308 to1.7E+30815 (15 decimal places)
long double 10 Bytes 3.4E-4932 to 1.1E+493219 (19 decimal places)
Con las capacidad de computo actual de una pc regular de escritorio, muchos programadores se olvidan de optimizar el tipo de variable a utilizar. Sin embargo, para software embebido o programación para con dispositivos limitados en recursos como la memoria, esto se vuelve esencial.
Siempre debes analizar cual usar… SIEMPRE!!!
Basic Types [Arithmetics]:
(A) Integers 2 Bytes or 4 Bytes
[int] -32,768 to 32,757 or -2,147,483,648 to 2,147,483,
[unsigned int] 0 to 65.535 or 0 to 4,294,967,295
[short] 32,768 to 32,767
[unsigned short] 0 to 65,535
8 Bytes
[long] -9223372036854775808 to 9223372036854775807
[unsigned long] 0 to 18446744073709551615
(B) Floats 4 Bytes
[float] 1.2E-38 to 3.4E+38 6 decimal places
8 Bytes
[double] 2.3E-308 to 1.7E+308 15 decimal places
10 Bytes
[long double] 3.4E-4932 to 1.1E+4932 19 decimal places
quizás le ahorro el cálculo a alguien:
256 * 256 = 65.536
65536 / 2 = 32.768
ACCIDENTE del 4 de Julio de 1996 en la European Space Agency (Esa) costando 370 MUSD por sobrepasar la capacidad de memoria de un dato:
-[ ] https://www.bbc.com/future/article/20150505-the-numbers-that-lead-to-disaster
La razón por la que caben esas cifras en cada uno de los diferentes tipos de datos está relacionada con el espacio que cada uno reserva en memoria, por ejemplo, en el caso de un int almacena 4 Bytes que sería el equivalente a 32 bits, como son valores binarios la forma de calcular el valor máximo a almacenar es tomando la base 2 y elevándola a 32(bits) de ahí se obtiene el valor máximo a almacenar (4’294,967,295).
😄
Basic Types:
ARITMETICOS
(A) Numeros enteros
int 4 Bytes: -2,147,483,648 to 2,147,483,647
unsigned int 4 Bytes: 0 to 4,294,967,295
/*El unsigned nos permite tener solo numero positivos*/
short 2 Bytes: -38,768 to 32,767
unsigned short 2 Bytes: 0 to 65,535
long 8 Bytes:
-9223372036854775808 to 9223372036854775807
unsigned long 8 Bytes 0 to 18446744073709551615
(B) de punto flotante
float 4 bytes: 1.2E-38 to 3.4E+38
6 decimal places
double 8 bytes: 2.3E-308 to 1.7E308
15 decimal places
long double 10 bytes: 3.4E-4932 to 1.1E+4932
19 decimal places```
Como hago para sacar los rangos de los bytes? veo que tal vez usa algún comando
Puntos de datos tipo de punto flotante.
* Aritmeticos:
* (A) Valores enteros:
* int: puede ser de 2 o 4 bytes, permite tener numeros negativos y positivos.
* 2 Bytes -32,768 to 32,757
* 4 bytes -2,147,483,648 to 2,147,483
* unsigned int: puede ser de 2 o 4 bytes, no permite datos negativos.
* 2 Bytes 0 to 65.535
* 4 bytes 0 to 4,294,967,295
* short 2 bytes
* 2 bytes -32,768 to 32,767
* unsigned short 2 bytes 0 to 65,535
* long 8 Bytes
* long 8 bytes -9223372036854775808 to 9223372036854775807
* unsigned long 8 bytes 0 to 18446744073709551615
* (B) De punto Flotante:
* float 4 bytes 1.2E-38 to 3.4E+386 ( 6 decimal places)
* double 8 bytes 2.3E-308 to1.7E+30815 (15 decimal places)
* long double 10 bytes 3.4E-4932 to 1.1E+493219 (19 decimal places)
Todos los valores numéricos son signed por defecto.
En C siempre tienes que pensar en el tipo de dato que vás a usar.
Que un tipo int sea de 2 o 4 bytes va a depender del compilador que estemos usando, aunque actualmente es un estándar usar números grandes, es decir un int de 4 bytes, un long de 8 bytes.
La razón por la que caben esas cifras en cada uno de los diferentes tipos de datos está relacionada con el espacio que cada uno reserva en memoria, por ejemplo, en el caso de un int almacena 4 Bytes que sería el equivalente a 32 bits, como son valores binarios la forma de calcular el valor máximo a almacenar es tomando la base 2 y elevándola a 32(bits) de ahí se obtiene el valor máximo a almacenar (4’294,967,295).
Basic Types [Arithmetics]:
(A) Integers 2 Bytes or 4 Bytes
[int] -32,768 to 32,757 or-2,147,483,648 to 2,147,483,
[unsigned int] 0 to 65.535 or 0 to 4,294,967,295
[short] 32,768 to 32,767
[unsigned short] 0 to 65,535
8 Bytes
[long] -9223372036854775808 to 9223372036854775807
[unsigned long] 0 to 18446744073709551615
(B) Floats 4 Bytes
[float] 1.2E-38 to 3.4E+386 decimal places
8 Bytes
[double] 2.3E-308 to1.7E+30815 decimal places
10 Bytes
[longdouble] 3.4E-4932 to 1.1E+493219 decimal places
Claro ahora comprendo más como se escribe un programa y que tipos de datos se utilizan para ello.
Excelente explicación!
INT FLOAT
entendi esa referencia!!
:v
Supongo que es algo con el compulador que estoy usando, pero aunque declaré una variable como sin signo, la operación se hizo como si nada:
#include <stdio.h>
int main(){
unsigned int entero1;
int entero2;
int suma;
printf("Introduzca el entero 1 \n");
scanf("%d", &entero1);
printf("Introduzca el entero 2 \n");
scanf("%d", &entero2);
suma = entero1 + entero2;
printf("La suma es: %d\n", suma);
}
Y el resultado:
Tipos de datos.
C es tipado, siempre se declara que tipo de dato se usará.
Saber siempre los rangos minimos & máximos de los valores del programa para asignarle un tipo de dato.
Basic Types:
Valores numéricos enteros(integer)
short 2 bytes. -32,767 to 32,767
unsigned int 2 bytes. 0 to 65,535
int 4 bytes. -2,147,483,684 to -2,147,483,684
unsigned int 4 bytes. 0 to 4,294,967,295
long 8 bytes.
unsigned long 8 bytes.
Valores numéricos decimales (float)
float 4 bytes. 6 lugares decimales
double 8 bytes. 15 lugareces decimales
long double 10 bytes. 19 lugares decimales```
Grande explicación y muy completa, bastante clara y entendible.
falto el long long int y el unsigned long long int
**Tipos de Datos Básicos en C: Tipos Aritméticos**
Los tipos de datos básicos en el lenguaje de programación C son esenciales para representar diferentes tipos de valores, ya sean enteros o de punto flotante. A continuación, se presenta una explicación corregida de los tipos aritméticos en C:
**(A) Valores Enteros:**
- **int:** Este tipo de dato ocupa 4 bytes en la memoria y puede almacenar valores en el rango de -2,147,483,648 a 2,147,483,647. Se utiliza para representar números enteros, positivos o negativos.
- **unsigned int:** Este tipo de dato también ocupa 4 bytes y puede almacenar valores desde 0 hasta 4,294,967,295. Se utiliza para representar números enteros sin signo, es decir, solo valores positivos.
- **short:** Un dato de tipo short ocupa 2 bytes y puede almacenar valores en el rango de -32,768 a 32,767. Al igual que "int", puede representar números enteros, positivos o negativos.
- **unsigned short:** Este tipo de dato utiliza 2 bytes y puede almacenar valores desde 0 hasta 65,535. Al igual que "unsigned int", se usa para representar números enteros sin signo.
- **long:** Un dato de tipo long utiliza 8 bytes y puede almacenar valores en el rango de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807. Se emplea para manejar números enteros de mayor amplitud.
- **unsigned long:** Este tipo de dato, también de 8 bytes, puede almacenar valores desde 0 hasta 18,446,744,073,709,551,615. Se utiliza para representar números enteros sin signo de mayor rango.
**(B) Valores de Punto Flotante:**
- **float:** Un dato de tipo float ocupa 4 bytes y puede almacenar valores en el rango aproximado de 1.2E-38 a 3.4E+38, con una precisión de hasta 6 lugares decimales.
- **double:** El tipo double utiliza 8 bytes y puede almacenar valores en el rango aproximado de 2.3E-308 a 1.7E+308, con una precisión de hasta 15 lugares decimales.
- **long double:** Este tipo de dato utiliza 10 bytes y puede almacenar valores en el rango aproximado de 3.4E-4932 a 1.1E+4932, con una precisión de hasta 19 lugares decimales.
En resumen, los tipos aritméticos en C te permiten manejar una variedad de valores numéricos, ya sean enteros o de punto flotante. Es esencial seleccionar el tipo de dato adecuado según la magnitud y precisión de los valores que deseas almacenar o manipular en tus programas.
Types & Description
1
Basic Types
They are arithmetic types and are further classified into: (a) integer types and (b) floating-point types.
2
Enumerated types
They are again arithmetic types and they are used to define variables that can only assign certain discrete integer values throughout the program.
3
The type void
The type specifier void indicates that no value is available.
4
Derived types
They include (a) Pointer types, (b) Array types, © Structure types, (d) Union types and (e) Function types.
The array types and structure types are referred collectively as the aggregate types. The type of a function specifies the type of the function’s return value. We will see the basic types in the following section, where as other types will be covered in the upcoming chapters.
https://www.tutorialspoint.com/cprogramming/c_data_types.htm
El lenguaje de programación C proporciona varios tipos de datos para almacenar diferentes tipos de información. Aquí hay una explicación de los tipos de datos básicos en C:
Enteros: Los enteros representan números enteros sin parte decimal. Hay diferentes tamaños de enteros en C, que varían en la cantidad de memoria que ocupan y el rango de valores que pueden almacenar. Algunos de los tipos de datos enteros más comunes son:
int: Representa enteros con signo. Por lo general, ocupa 4 bytes en la mayoría de las plataformas y tiene un rango de alrededor de -2,147,483,648 a 2,147,483,647.
short: Representa enteros cortos con signo. Normalmente, ocupa 2 bytes y tiene un rango de aproximadamente -32,768 a 32,767.
long: Representa enteros largos con signo. Suele ocupar 4 bytes o más, dependiendo de la plataforma, y tiene un rango más amplio que el int.
Caracteres: Los caracteres en C se representan mediante el tipo de dato char. Un char ocupa normalmente 1 byte de memoria y puede almacenar un único carácter. Los caracteres se pueden representar utilizando comillas simples, como ‘a’, ‘b’, etc.
Punto flotante: Los números con parte decimal se representan mediante tipos de datos de punto flotante. Los tipos de datos más comunes para números de punto flotante en C son:
float: Representa números de punto flotante con precisión simple. Ocupa normalmente 4 bytes y puede contener valores en un rango aproximado de ±3.4e-38 a ±3.4e38 con una precisión de aproximadamente 6 dígitos decimales.
double: Representa números de punto flotante con precisión doble. Por lo general, ocupa 8 bytes y tiene un rango más amplio que float, con una precisión de aproximadamente 15 dígitos decimales.
Booleanos: En C, el tipo de dato int se utiliza para representar valores booleanos. Por convención, se considera que el valor 0 representa falso, y cualquier otro valor representa verdadero. A menudo, se utilizan las constantes 0 y 1 para representar falso y verdadero, respectivamente.
fuente chatgpt
Excelente clase
9 trilllones 223 mil 372 billones 036 mil 854 millones 775 mil 807
Les dejo el código si quieren imprimir un número inmenso…
#include <stdio.h>
int main() {
unsigned long long num = 10000000000;
printf("El número es: %llu\n", num);
return 0;
}
Va de la mano con lo que dice de saber decidir que tipo de variable es para cada dato.
En cuestiones cientificas como calculos físicos y astrologicos, tambien sirve tener más de 6 lugares deciamles. Porque se requiere mayor precición.
Cuestiones financieras recomedable tener mas de 6 lugares decimales.
De tipo flotante o punto decimal. Tiene 6 pociciones decimales. Tipo double es de 8 bytes. Tiene 380 pociciones, para recorrer en lo positivo y negativo. Tiene 15 pociciones decimales. long double. No puede ser unsigned. De 10 bytes. 19 pociciones decimales.
Todos los tipos de datos van con letra minuscula. Todos los tipos de datos tiene su versión unsigned.
Todos los tipos de datos van con letra minuscula.
Tipo de dato short. Es de 2 bytes. Siempre lo he entendido como un int que tiene la mitad de memoria que tiene int.
Tipo de dato short. Es de 2 bytes. Siempre lo he entendido como un int que tiene la mitad de memoria que tiene int.
Escencial saber de que tamaño vas a estar usando tus tipos de dato.
En C siempre saber el tipo de dato que vas a usar. Siempre tienes que tener el control. Sino se tiene desbordamientos de memoria.
En C siempre tienes que pensar cuales son los valores que se van a almacenar en las variables. Siempre hay hacer los calculos. Antes de lanzad un codigo. Definir bien los requerimientos. Standar int de 4 bytes.
Antes de lanzar un codgio, hay que hacer los calculos. Por eso hay que definir bien los requerimientos. Para identificar los tipos de datos.
Cuando menciona lo del robot del lado izquierdo o derecho con valores positivos o negativos. Me recuerda a los vectores.
Unsigned int. Instrucción que no permite usar número negativos. De 0 a 65,535 o de 4,294,967,295
Tipos basicos. Almacenan información aritmetica.
Dividida en Aritmeticos o enteros. (int) y flotantes o decimales (float).
Int 2 a 4 bytes. De -32,768 a 32,767 o -2,147,483 a 2,147,483,647.
Tipos basicos. Almacenan información aritmetica. Dividida en Aritmeticos o enteros. (int) y flotantes o decimales (float). Int 2 a 4 bytes. De -32,768 a 32,767 o -2,147,483 a 2,147,483,647.
Algo a destacar, es que el tamaño de long depende si el sistema operativo es de 32 o 64 bits.
En el caso de los sistemas 32 bits, su tamaño será solamente de 4 bytes.
Super interesante los ejemplos para entender los tipos de datos!
Encontré algunas funciones para poder encontrar los valores que pueden almacenar las variables.
Tipos de datos
Recuerda que C es tipado, siempre hay que declarar que tipo de dato esperamos.
Basic Types:
En este se trabajra con datos aritmeticos y flotantes
Aritmeticos = int
unsigned int
, al poner unsigned int y evitar los negativos, genero mas espacio para los positivosunsigned short
unsigned long
2 Bytes -32,768 to 32,757
4 bytes -2,147,483,648 to 2,147,483,647
unsigned int 2 bytes 0 to 65,535
unsigned int 4 bytes 0 to 4,294,967,295
long 8 bytes -9223372036854775808 to 9223372036854775807
unsigned long 8 Bytes 0 to 18446744073709551615
Float
4 bytes 1.2E -38 to 3.4E+38 (6 decimal places)
8 Bytes 2.3E-308 to1.7E+30815 (15 decimal places)
long double 10 Bytes 3.4E-4932 to 1.1E+493219 (19 decimal places)
Los datos aritméticos que se van a manejar pueden ser valores de tipos enteros o de punto flotante.
Datos ariméticos: int, short, long (todos los aritméticos pueden llevar un unsigned)
datos flotantes: float, double, long double
Tipos de datos en C
En conclusión, debemos ser conscientes de que tipos de datos usar para evitar el desperdicio de memoria en nuestro programa y evitar la pérdida de información o las limitaciones, entendido 😄
En C siempre tienes que pensar qué tipo de dato serán las variables.
En C debes de saber hasta dónde puede llegar una variable.
Tipos de datos
Valores entero
int 4 bytes -2 147 483 648 to 2 147 483 647
unsigned int 4 bytes 0 to 4 294 967 295
short 2 bytes -32 768 to 32 767
unsigned short 2 bytes 0 to 65 535
long 8 bytes -9 223 372 036 854 775 808 to 9 223 372 036 854 775 807
unsigned long 8 bytes 0 to 18 446 744 073 709 551 615
Valores flotantes
float 4 bytes 1.2E-38 to 3.4E+38 6 decimal places
double 8 bytes 2.3E-308 to 1.7E+308 15 decimal places
long double 10 bytes 3.4E-4932 to 1.1E+4932 19 decimal places
Hola a todos!
Gracias a la libreria limits.h podemos ver el rango con los que cuentan cada tipo de dato en C,
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>// Header: standar de entrada y salida
int main(){
printf("INT _MAX %i \n", INT_MAX);
printf("INT _MIN %d \n", INT_MIN);
printf("SHORT _MAX %d \n", SHRT_MAX);
printf("LONG MAX %d \n", LONG_MAX);
printf("CHAR _BIT %d \n", CHAR_BIT);
return 0;
}
Para los eruditos, 1 byte está compuesto de 8 bits es decir 8 espacios en memoria del código binario por ejemplo (10010011=>byte) y cada numero de 0 y 1 es un bit.
ahoraa es cuando te empiezan a temblar las piernas te lo aseguro pues las matematicas vienen y te pegan una envoltura y te desenvuelven horrible.
también se representa esto como centenares de millares de bytes hasta millones, como el byte es una unidad elemental de almacenamiento, se utilizan múltiplos para definir el tamaño de memoria central por ejemplo: KB (Kilobyte) = 1.024 bytes ^9, Megabyte (MB) = 1.024 X 1.024 bytes (2^20=1.048.576), GB=1.024MB (2^30=1.073.741.824)…
Te aconsejo que lo dejes o tomes el riesgo de perderte enn un mundo oscuro, mas que eso que mencionan como deep web…
En long double es el mas utilizado para temas financieros ya que la precisión es muy acertada.
creo que seria bueno que colocaras el código que escribes en la parte de recursos
Alguien mas usa en vez de bloc de notas el editor de codigo? (en mi caso sublime) porque el fondo es obscuro y no me cansa tanto como el notepad
en C es escencial que tipos de datos quiero y voy a usar.
Buena explicacion
Excelente explicación, sobre todo la funcionalidad de cada uno de los tipos de datos numéricos y en que casos pueden servir
Interesante manera de explicar esta información valiosa que en otros cursos solo la dan sin darle la importancia que tienen a la hora de realizar nuestros programas.
Grande explicación y muy completa, bastante precisa.
profe estoy tomando internet de las cosas con usted la mayoria de mis cursos fueron con usted tengo una duda o una consulta como podria comunicarme con usted es para una guia
Los tipos de datos son importantes saberlos, pero aun mas importante el espacio el que ocupa en memoria y como esto influye al compilar o al compilar un proyecto donde estemos gastando memoria, me ha pasado cuando programo en arduino en donde desperdicio memoria y ocupo mas de la que debería , muchas gracias gran explicación.
…
bueno aunque el arduino no le cabe nada de memoria jajaj
Aclara algunas dudas, espero que en los microcontroladores estandarizen los tipos de datos, también.
18… 🤔🤨… Sí! 18😅😂
Buenas como aporte, me pareció interesante explicar el porque de los números de datos que admiten cada tipo en C(no hablare de todas los tipos).
Esto es debido al numero de bytes, recordemos que cada byte son 8 bit, entre mas bits tengamos el numero que podremos representar sera mayor.
Tambien en el sistema binario el valor de cada bit segun su posicion lo podemos ver como 2 a la n potencia, donde n es la posicion.
2^0 = 1
2^1 = 2
2^2 = 4
etc.
Entonces cuando tenemos un variable con 4 bytes(32 bit) tenemos como mayor numero a mostrar 2^32 y de ahi sale el numero que Celis nos mostro.
Cabe decir, que cuando un tipo de variable no se especifica su tamaño (long, short o double), el compilador considera a esa variable de tipo long. En otras palabras, declarar una variable como long int es igual a declara una variable como int.
Hola, encontré un error en esta clase sobre los modificadores de rango:
El tipo long es para definir el tamaño de la variable en 4 Bytes (32 bits), no en 8 Bytes como se mencionó anteriormente. El tipo short es para 2 Bytes (16 bits) y double es para 8 Bytes (64 bits).
Fuentes:
Tipos de datos de punto flotante.
¿Esta clase me la puedo saltar?
Es importante tener en cuenta el tamaño de los datos que se van a utilizar. Si es entero, flotante carácter.
gracias!
Como se podria hacer para estimar cual va a ser el numero maximo que necesitamos en nuestro desarollo?
Muy bien explicado, ahora se mas de C.
Una pequeña corrección en los rangos de las variables de punto flotante:
float 4 Bytes -3.4E+38 to 3.4E+38 6 cifras decimales
double 8 Bytes -1.7E+308 to 1.7E+308 15 cifras decimales
long double 10 Bytes -1.1E+4932 to 1.1E+4932 19 cifras decimales
por ejemplo, en el video dice que el rango de float es 1.2E-38 to 3.4E+38 6 cifras decimales y esto no puede ser pues el limite inferior 1.2E-38 significa 0.00…012 con 36 ceros entre el punto y el 12, lo que son mucho más que 6 cifras decimales, por todo lo demás muy buena clase!
Para los de Punto Flotante no hay numeros negativos?
Para float 4 Bytes da un rango de 0.00(37ceros)0012 a 3400(37ceros)00, pero con 6 lugares decimales, aun cuando el primer numero tiene 39 lugares decimales.
Alguien que entienda mi confusion? Gracias
Aritmeticos
Valores Enteros Int 2 o 4 bytes -32768 a 32767 -2147483648 a 2147483647
Unsigned int 2 o 4 bytes 0 a 65535 0 a 4294967295
Short 2 bytes
Unsigned short 2 bytes
Long 8 bytes -9223372036854775808 a 9223372036854775807
Unsigned long 8 bytes 0 a 18446744073709551615
Flotantes o de punto Flotante Float 4 bytes 1.2E-38 a 3.4E+38 6 decimal places
Double 8 bytes 2.3E-308 a 1.7E+308 15 decimal places
Long double 10 bytes 3.4E-4932 a 1.1E+4932 19 decimal places
Buena Practica: Antes de lanzar un codigo siempre hay que saber los rangos minimos y rangos maximos de tus variables
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.