<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
yo recuerdo que tenia muchos problemas con los tipos de "c"  siempre me salian muchos errores en el compilador espero esto te sirva<div>un char  es un byte ,</div><div>un byte son 8 bits</div><div>8 bits son 2^8 diferentes combinaciones</div><div>2^8 son 256</div><div>siempre que escribes char variable</div><div>le dices al compilador  esta variable no puede tener mas de 256 valores diferentes<br>short int alto1; es igual short alto2; creo</div><div>pero para que estes seguro checa su espacio en memoria con sizeof(alto1)</div><div><br></div><div>if(sizeof(alto1)==sizeof(alto2))</div><div>{printf( "es igual el espacio de memoria"  );}</div><div><br></div><div>un short son 2 bytes</div><div>2 bytes son 16 bits</div><div>16 bits son 2^16 diferentes combinaciones</div><div><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Date: Wed, 2 May 2012 23:04:52 +0200<br>From: usuarioanonimomysql@gmail.com<br>To: cconclase@listas.conclase.net<br>Subject: Re: [C con Clase] Sobre el punto 'Tipos de variables I' del curso<br><br>Más dudas,<br><br>El el capítulo pone: "podemos estar seguros de que el tamaño de un short int es menor o igual que el de un int, y éste a su vez es menor o igual que el de un long int" y también sobre long long [int] pone "Como en los otros casos, su tamaño no está definido, pero sí sabemos que será mayor o igual que el de long int"<br>
<br>De esto deduzco lo siguiente:<br><br>short int < int < long int < long long int<br><br>Pero no me queda claro entre qué tipo y qué tipo entran los tipos short, long y long long, todos ellos sin llevar un int después, y tampoco se qué diferencia hay entre estos y los que llevan un int después.<br>
<br>Saludos.<br><br><div class="ecxgmail_quote">El 2 de mayo de 2012 11:08, User <span dir="ltr"><<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a>></span> escribió:<br><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">
Hola,<br><br>Gracias por las aclaraciones, el caso es que veo que este tema ha perdido un poco de importancia con las nuevas arquitecturas de procesadores, si no me equivoco. Tal vez, en plataformas más cerradas esto tenga más sentido que en un PC moderno.<br>

<br>Lo que voy a hacer es ver lo que ocupa cada tipo en mi platafora y en base a eso declaro el tipo que más se ajuste al intervalo válido de los enteros a tratar.<br><br>Saludos.<br><br><div class="ecxgmail_quote">El 2 de mayo de 2012 01:57, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<div>
<div class="h5"><br>
<blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">Hola User,<div><div><br>
<br>
On 5/1/2012 7:16 PM, User wrote:<br>
<blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">
Hola,<br>
<br>
Estoy dando un repaso a los temas del curso de C++ y llegado al punto<br>
de 'Tipos de variables I' hay cosas que no me quedan claras.<br>
<br>
Según la sintaxis expuesta en el punto, veo que se pueden declarar<br>
variables de tipo short int, long int, int, long, short, long long y<br>
long long int.<br>
<br>
No me queda claro en qué caso se debería usar una declaración u otra.<br>
He programado en C++ y si quiero trabajar con un número entero<br>
siempre acabo usando int.<br>
<br>
Me gustaría, si fuera posible, que pusieráis ejemplos concretos con<br>
cada uno de los casos y en qué "problemas" o tipo de "no<br>
optimización" se incurriría al usar un tipo que no se ajuste de<br>
manera fiel a los datos con los que vamos a trabajar.<br>
<br>
Si podéis responder a este correo con un adelanto de lo que pido<br>
estaría genial.<br>
<br>
</blockquote>
<br></div></div>
Bueno, como bien dices, uso 'int' cuando necesito un entero. El tipo 'int' representa el entero con el que más cómodo se siente el procesador. Lo que pasa es que hoy día usamos 'int' para 32 bits, aunque tengamos plataformas de 64 bits, que se suele representar como 'long long int'. En general, usamos 'int' para un entero cualquiera, pero si necesitamos o sabemos de antemano el intervalo válido de los enteros a tratar, entonces pasaríamos a usar 'short int' o 'long long int', cuando sean necesarios.<br>


<br>
Por ejemplo, para cronómetros de alta resolución, pasaríamos a usar un entero de 64 bits y por tanto sería un 'unsigned long long int'. Si estamos usando gráficos, por ahora, las dimensiones de una imagen son de la orden de unos centenares o millares de píxeles para las filas y para las columnas, como por ejemplo, 1024x768, 1440x900, 2048x2048, 4096x4096, etc.. Para este caso, usaríamos 'unsigned short int' porque no llegamos a los 65536 de los 16 bits que suele ocupar 'unsigned short int'. Asimismo, en el modelo RGB de colores, cada canal, rojo, verde, y azul, usan 8 bits cada uno, por lo que individualmente se representarían con un 'unsigned char'. También es cierto que hay otros modelos de RGB que usan 16 bits por cada canal, así que entonces estaríamos ante un uso de 'unsigned short int'.<br>


<br>
En general, habría que mirar cada caso y si realmente nos sirve usar 'short int' en lugar de 'int'. Hoy día, 'long int' ocupa lo mismo que 'int', así que no es muy usado, excepto como indicativo de que queremos un entero grande, aunque en la práctica estemos ante un entero "normal".<br>


<br>
Como no siempre sabremos exactamente el uso del entero, sugiero usar tipos definidos, para que así podamos redefinirlos si las cosas no salen bien. Por ejemplo,<br>
<br>
typedef unsigned long int dim_t;     // tipo de dimensión<br>
typedef unsigned short int coord_t;  // tipo de coordenada<br>
typedef unsigned char edad_t;        // tipo de edad<br>
typedef long long int crono_t;       // tipo de cronómetro: pulsacions<br>
<br>
<br>
Espero haber aclarado un poco el tema.<br>
<br>
Steven<br>
<br>
<br>
______________________________<u></u>_________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/<u></u>mailman/listinfo/cconclase_<u></u>listas.conclase.net</a><span class="ecxwrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/<u></u>index.php?gid=2&mnu=FAQ</a><span class="ecxwrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

</blockquote></div></div></div><br>
</blockquote></div><br>
<br>_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ</div></div>                                     </div></body>
</html>