Академический Документы
Профессиональный Документы
Культура Документы
Historia
En el lenguaje C estandarizado como C89, existían cuatro tipos de datos básicos que son:
los números enteros, los números reales, los caracteres, y los punteros. A partir del estándar
C99 se agregan: los valores lógicos (verdadero o falso) y los números complejos.
Estos tipos de datos son parte del lenguaje, y por ello se los considera primitivos. Más
adelante veremos que con el uso de estructuras y uniones es posible crear tipos compuestos
de datos a partir de estos tipos primitivos.
En este capítulo veremos los enteros, los reales y los caracteres. Más adelante se verán
otros tipos de datos más complejos, como son los vectores, las cadenas de caracteres, y los
punteros en general
Enteros
Los enteros son el tipo de dato más primitivo en C. Se usan para representar números
enteros. Pero siempre se pueden encontrar otras aplicaciones para los números enteros. En
general se pueden usar para representar cualquier variable discreta.
Los tipos de datos enteros son: short, int, long y long long.
Es decir que para el lenguaje C existen diferentes tamaños de números enteros que, según el
compilador y la plataforma de hardware, pueden tener desde 1 byte hasta 8 bytes (para más
detalles busca en la referencia).
Además, el lenguaje C hace la distinción de si el entero es con signo o sin signo (signed o
unsigned). La forma de declarar un entero es con uno de los tipos de datos que sean
enteros según el tamaño que se quiera. En caso de que no se declare si es con signo o sin
signo, se toma con signo.
int a;
unsigned int a;
signed long a;
signed long long a = 10000000;
Todos los números son representados en memoria mediante una cadena de bits. En el caso
de los números con signo, el bit más significativo es el que se usa para representar el
signo. La representación de los números negativos se realiza mediante el complemento a
dos, que es una técnica que permite operar con los números negativos de forma lógica.
Flotantes
Se denomina flotantes a los tipos de datos que representan a los números reales, ya que
utilizan un sistema de representación basado en la técnica de coma flotante, que permite
operar con números reales de diversas magnitudes, mediante un número decimal llamado
mantisa y un exponente que indica el orden de magnitud.
El tipo de dato flotante en lenguaje C sólo tiene dos tamaños: el float y el double, que son
4 bytes y 8 bytes respectivamente. Se los puede utilizar tanto para representar números
decimales, como para representar números enteros con un orden de magnitud muy grande.
La forma de declarar una variable flotante es escribiendo en una línea uno de los tipos de
datos flotantes y a continuación el nombre de la variable y tal vez algún valor que se les
quiera dar.
Algunos ejemplos:
float a;
double a = 1e23;
double a = 3.1416;
float a = 4e-9;
double a = -78;
Hay que tener en cuenta que aunque los valores flotantes son más convenientes para
algunas aplicaciones, hay casos en los que se prefieren los enteros. Esto se debe a que los
números flotantes no necesariamente tienen soporte de hardware, en particular en las
plataformas integradas. Una alternativa que se utiliza en estas situaciones es interpretar los
enteros como decimales de forma que 150 se interprete como 1.5 y 2345 como 23.45.
Para el caso de los flotantes de 4 bytes, se utiliza 1 bit para el signo, 8 bits para el
exponente y 23 bits para el valor del número. El procedimiento para almacenar un número
en una variable flotante es el siguiente:
En cuanto a la forma de declarar variables de tipo char es la misma forma que con los otros
tipos.
char a;
char a = 's';
char a = 48;
Como puedes ver, se le puede asignar un número a una variable char, ya que se trata de un
tipo entero. En algunas situaciones particulares se utiliza el tipo char para contadores,
porque permite que ocupen sólo un byte en memoria.
Es importante notar que con la llegada de la codificación UTF-8, los caracteres de los
diversos idiomas pueden ocupar 1, 2, 3 o 4 bytes, de modo que el tipo char ya no alcanza
para la representación de todos los caracteres. Por ello, el estándar C99 introduce el tipo
wchar que puede ocupar más de 1 byte, según sea necesario para la codificación utilizada
por el sistema.
Tipos de datos
C++ tiene los siguientes tipos fundamentales:
El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por
omisión los enteros contienen signo), con lo que se consigue un rango mayor de números
naturales.