This is the P2PU Archive. If you want the current site, go to www.p2pu.org!

Algorit.y Estructuras de datos

Clase 3 (Semana 3)

Marco Gonzalez's picture
Mon, 2011-02-14 08:00

Estimados: Les mando la clase número 3, como menciono en ésta, fue la que me inspiró a crear este curso.. esta clase en una introducción de la 4, donde realmente se pone interesante el curso, asi que sigan con el mismo entusiasmo que eso me contagia a mi también.

Attachment: 

Comments

Fe de erratas: La información

Marco Gonzalez's picture
Marco Gonzalez
Tue, 2011-02-15 18:54

Fe de erratas: La información correcta es que un int ocupa 4 bytes y un char 1 byte.

A veces la memoria es fragil :p

Saludos

Muchas Gracias Luis. Añadidos

Daniel Góngora's picture
Daniel Góngora
Thu, 2011-02-17 21:54

Muchas Gracias Luis. Añadidos al PAD(http://pad.p2pu.org/dL9cITUGmx)
Saludos.

Tengo una duda: ¿Qué tipo de

Daniel Góngora's picture
Daniel Góngora
Thu, 2011-02-17 21:57

Tengo una duda:
¿Qué tipo de entero ocupa 4 bytes? ¿Uno "Long"?
Yo conocía de los enteros que ocupaban 1 Byte(0-255). ¿Esto no depende del lenguaje de programación?
Saludos.

00000000|00000000|00000000|00

Luis Palomo's picture
Luis Palomo
Thu, 2011-02-17 22:14

00000000|00000000|00000000|00000000 => 4 bytes => 32 bits
Entonces un entero de 4 bytes puede representar 2³² números, del 0 al 4294967295 (2³²-1). Osea que lo que puede variar entre lenguajes de programación es como se le llama a un entero de 4 bytes (por ejemplo un LP podria llamarlo long long int y otro LP llamarlo simplemente int), pero nunca cambia el dominio de números posibles para la variable.

¿Y por dominio de números

Daniel Góngora's picture
Daniel Góngora
Thu, 2011-02-17 23:30

¿Y por dominio de números posibles para la variable te refieres a (2³²-1) siempre y cuando sean 4 bytes lo que se usen para representar al entero?

Si si, eso del signo y lo de

Daniel Góngora's picture
Daniel Góngora
Thu, 2011-02-17 23:39

Si si, eso del signo y lo de los bits lo tengo claro. El problema es que yo daba por sentado que un INT era si o si equivalente a 1 byte pero evidentemente ese es un error.

De todas maneras buena la explicación, a más de uno le servirá.

Creo que seria bueno que el

Wille Marcel's picture
Wille Marcel
Fri, 2011-02-18 02:40

Creo que seria bueno que el plazo para entrega de las tareas sea hasta el sábado o domingo, pues trabajo de lunes a viernes y tengo más tiempo libre en el fin de semana.

mmm.. yo no tengo problema...

Marco Gonzalez's picture
Marco Gonzalez
Fri, 2011-02-18 05:01

mmm.. yo no tengo problema... solo me importa que las hagan para que aprendan... Seran hasta el domingo entonces :)

Saludos

Más o menos, resumiendo, el

Luis Palomo's picture
Luis Palomo
Fri, 2011-02-18 15:53

Más o menos, resumiendo, el dominio (o números que son posibles de asignar a la variable) está determinado por el número de bits de la variable, entonces:

  • un int de 1byte (8 bits) tiene un dominio de 2⁸ números posibles ([-128,127] si es un signed int o [0,255] si es un unsigned int, nótese que ambos intervalos tienen 2⁸ elementos). Osea, en un int de 1 byte sí puedes almacenar el valor 0, el 1, el 15, el -102, el 255, pero nunca podrás almacenar el valor 300 ya que, sea signed o unsigned int, está fuera de su dominio.
  • de forma similar un int de 4bytes (32 bits) tiene un dominio de 2³² números posibles ([−2147483648,2147483647] si es un signed int o [0,4294967295] si es un unsigned int, , nótese que ambos intervalos tienen 2³² elementos). Osea que en un int de 4 bytes sí puedes almacenar el valor 300 (que no puedes almacenar en un int de 1 byte) pero no puedes almacenar el valor 4294967296
  • Por si se te genera la duda, la diferencia de números posibles a asignar en variables unsigned int vs signed int se da porque en el caso de signed int se debe ocupar 1 bit para indicar el signo (si ese bit vale 1 el número es negativo y si vale 0 el número es positivo)