Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 78 — #116<br />
✐<br />
Capítulo 3. C <strong>en</strong> <strong>C++</strong><br />
3.4.3. Especificadores<br />
Los especificadores modifican el significado de los tipos predefinidos básicos y<br />
los expand<strong>en</strong> a un conjunto más grande. Hay cuatro especificadores: long, short,<br />
signed y unsigned.<br />
long y short modifican los valores máximos y mínimos que un tipo de datos<br />
puede almac<strong>en</strong>ar. Un int plano debe t<strong>en</strong>er al m<strong>en</strong>os el tamaño de un short. La jerarquía<br />
de tamaños para tipos <strong>en</strong>teros es: short int, int, long int. Todos pued<strong>en</strong> ser<br />
del mismo tamaño, siempre y cuando satisfagan los requisitos de mínimo/máximo.<br />
En una maquina con una palabra de 64 bits, por defecto, todos los tipos de datos<br />
podrían ser de 64 bits.<br />
La jerarquía de tamaño para los números <strong>en</strong> coma flotante es: float, double y<br />
long double. «long float» no es un tipo válido. No hay números <strong>en</strong> coma flotantes de<br />
tamaño short.<br />
Los especificadores signed y unsigned indican al compilador cómo utilizar el<br />
bit del signo con los tipos <strong>en</strong>teros y los caracteres (los números de coma flotante<br />
siempre conti<strong>en</strong><strong>en</strong> un signo). Un número unsigned no guarda el valor del signo<br />
y por eso ti<strong>en</strong>e un bit extra disponible, de modo que puede guardar el doble de<br />
números positivos que pued<strong>en</strong> guardarse <strong>en</strong> un número signed. signed se supone<br />
por defecto y sólo es necesario con char, char puede ser o no por defecto un signed.<br />
Especificando signed char, se está forzando el uso del bit del signo.<br />
El sigui<strong>en</strong>te ejemplo muestra el tamaño de los tipos de datos <strong>en</strong> bytes utilizando<br />
el operador sizeof, descripto más adelante <strong>en</strong> ese capítulo:<br />
//: C03:Specify.cpp<br />
// Demonstrates the use of specifiers<br />
#include <br />
using namespace std;<br />
int main() {<br />
char c;<br />
unsigned char cu;<br />
int i;<br />
unsigned int iu;<br />
short int is;<br />
short iis; // Same as short int<br />
unsigned short int isu;<br />
unsigned short iisu;<br />
long int il;<br />
long iil; // Same as long int<br />
unsigned long int ilu;<br />
unsigned long iilu;<br />
float f;<br />
double d;<br />
long double ld;<br />
cout<br />