13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!