<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
Tenías razón amigos. Ahora me ha quedado claro. De 0 a 127 se necesitan solamente 7 bits. <BR>
Esta tarde, en el trabajo, he estado confeccionando una tabla binaria de 16 bits y me he dado cuenta del error.<BR>
La cosa esta en que me cuesta asimilar algunos conceptos y hasta que no lo veo muy claro no me doy cuenta de lo que ocurre.<BR>
Con la tabla binaria lo he visto clarisimo... jejejeje.<BR>
 <BR>
Os agradezco mucho la ayuda. Enseguida habeis respondido y con explicaciones muy claras.<BR>
Estoy muy ilusionado con el curso.<BR>
Saludos.<BR>
<BR>> Date: Tue, 25 Mar 2008 12:31:31 -0500<BR>> From: vze266ft@verizon.net<BR>> To: cconclase@listas.conclase.net<BR>> Subject: Re: [C con Clase] Curso C++ de C con clase. Capítulo 11: Tipos de variables III: Estructuras.<BR>> <BR>> Hola Pedro,<BR>> <BR>> Pedro Rodrguez Castell wrote:<BR>> > Buenos días amigos.<BR>> > Hace poco he empezado el curso C++ que hay en la web y me he quedado <BR>> > encallado en este capítulo.<BR>> > <BR>> > Vamos a ver si se explicarme bien y logro que entendais mi duda.<BR>> > <BR>> <BR>> Muy bien. Veamos las dudas.<BR>> <BR>> > Después de leer concienzudamente el capítulo he empezado ha hacer los <BR>> > ejercicios que se plantean. No me ha costado mucho hacer el primero, ya <BR>> > que es bastante sencillo y los conceptos están muy bien explicados en el <BR>> > capítulo.<BR>> > En el segundo ejercicio, que trata sobre hacer una estructura FECHA <BR>> > utilizando campos de bits es donde me estoy haciendo un lio tremendo.<BR>> > Para hacer la estructura debo utilizar una sola variable "unsigned short <BR>> > int" (16 bits) donde deben almacenarse 3 campos que corresponden a DIA, <BR>> > MES y AÑO.<BR>> > <BR>> > DIA - debe ser capaz de almacenar valores del 1 al 31.<BR>> > MES - debe ser capaz de almacenar valores del 1 al 12.<BR>> > AÑO - debe ser capaz de almacenar valores del 1 al 128 (limite impuesto <BR>> > por el ejercicio).<BR>> > el primer año corresponde a 1960 y el último a 2087 por lo <BR>> > tanto sería 1960 + variable AÑO.<BR>> > <BR>> <BR>> Me temo que aquí es donde cometes un error. En primer lugar, el <BR>> ejercicio no dice que la estructura sea capaz de almacenar valores del 1 <BR>> al 128, por lo que esto es una inferencia tuya. En segundo lugar, si <BR>> usamos tu fórmula y diseño observamos lo siguiente:<BR>> <BR>> 1960 = 1960 + 1<BR>> 2087 = 1960 + 128<BR>> <BR>> Obviamente vemos que esto no es cierto. Lo que sí podemos inducir es que <BR>> los valores mínimo y máximo son:<BR>> <BR>> 1960 = 1960 + 0<BR>> 2087 = 1960 + 127<BR>> <BR>> El intervalo es [0,127].<BR>> <BR>> > Para DIA utilizo 5 bits (los necesarios para contar del 1 al 31).<BR>> > Para MES utilizo 4 bits (los necesarios para contar del 1 al 12 y aún me <BR>> > sobra).<BR>> > Para año utilizo 8 bits (los necesarios para contar del 1 al 128).<BR>> > <BR>> > Si sumo todos los bits que preciso para hacer la estructura salen 5 + 4 <BR>> > + 8 = 17 bits.<BR>> > <BR>> > No puedo hacer la estructura con un sólo unsigned short int, ya que solo <BR>> > tiene 16 bits.<BR>> > <BR>> <BR>> Efectivamente, pero con la explicación anterior, vemos que necesitamos 7 <BR>> bits y así llegamos a los 16 bits.<BR>> <BR>> > Otra cuestión es la siguiente:<BR>> > Si un "int" ocupa 16 bits que equivale a 2 Bytes. ¿Porque en el capítulo <BR>> > se cita que ocupa 4 Bytes?.<BR>> > <BR>> <BR>> Esto no es necesariamente correcto. Ten presente que estamos usando <BR>> 'unsigned short int' y no un 'unsigned int'. Con 'short int', tenemos <BR>> otro tipo de dato que suele ser menor a 'int'.<BR>> <BR>> En fin, hoy en día los compiladores establecen que 'short int' ocupa 2 <BR>> bytes e 'int' equivale a 4 bytes.<BR>> <BR>> > Soy consciente de que puede que sea una tonteria lo que estoy <BR>> > preguntando pero la verdad es que me estoy volviendo chiflado con este <BR>> > tema amigos. Espero que podais ayudarme con esto.<BR>> > <BR>> <BR>> No te preocupes, para esto mismo creamos la lista.<BR>> <BR>> <BR>> Espero que todo esto te ayude.<BR>> <BR>> Steven<BR>> <BR>> <BR>> <BR>> _______________________________________________<BR>> Lista de correo Cconclase Cconclase@listas.conclase.net<BR>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<BR><BR><br /><hr />Tecnología, moda, motor, viajes,.suscríbete a nuestros boletines para estar siempre a la última <a href='http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http%3a%2f%2fmail.live.com' target='_new'>MSN Newsletters</a></body>
</html>