Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/04/2010, 01:35
Avatar de enrique8923
enrique8923
 
Fecha de Ingreso: marzo-2010
Mensajes: 7
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Mediumint (8) MySQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es un problema de representación de datos en binario (Tema 1, Bolilla 1, de Introducción a la computación).
Miralo así:

1. Los números, desde el punto de vista digital, no existen. Son sistemas de codificación de información, numérica en este caso, y los sistemas digitales sólo entienden binario. ¿Por qué binario? Bueno, no te olvides que se trata de circuitos de silicio que sólo pueden tener dos estados: Cargados o sin carga. No hay otra.

2. Si solamente entiende binario, un sistema de computación necesita codificar la información para que cada secuencia binaria sea comprendida de una determinada form, sea para almacenar, operar, calcular o mostrar. Los números tienen esa misma particularidad.

3. El problema de los binarios, es que sólo pueden representar números naturales, esto es, del cero en adelante. ¿Cómo haces entonces para representar valores negativos, que son una creación de la mente humana? Sencillo: Usas el binario para representar ambos, pero usando solamente la mitad para los positivos y la mitad para los negativos.

4. Ahora bien, del hecho de usar binarios surgen dos cosas: a) Todo valor posible es potencia de dos, y no de 10; b) El cero debe estar representado.

5. Como el cero debe estar representado, si tenemos en cuenta, por ejemplo, la longitud de un byte de 8 bits, existen 256 representaciones posibles entre el 00000000 y el 11111111. SI usamos el 00000000 para el cero, nos quedan 255 representaciones útiules... y no se pueden dividir en dos partes iguales... ¿Se entiende hasta allí?

6. Además de eso, queda por definir cómo diferenciarl los negativos de los positivos. Eso se resolvió arbitrariamente: Los binarios que tengan un cero en su bit de mayor peso serían positivos y los que tuviesen un 1 serían negativos. Así, el rango del 00000001 al 01111111 son positivos, con lo que representan los valores del 1 al 255, mientras que del 10000001 al 11111111 son negativos y representan los valores del 1 al 256.

7. Esto se cumple en todos los casos. El tipo de datos numéricos no se guarda como cifras sino como binarios y su rango está definido por la longitud en bytes que usará así, cada uno no es el doble del otro, sino uno por el otro.
A esto debes sumarle que existen números sin signo, los cuales abarcan la totalidad del rango de numeros naturales posibles para su tipo:
Veamos, por ejemplo el uso de MySQL: [URL="http://dev.mysql.com/doc/refman/5.0/es/numeric-types.html"][B]11.2. Tipos numéricos[/B]
[/URL]
¿Se va comprendiendo la idea?


perfectamente, woow, eso si fue una explicacion buenisima, entiendo de los numeros binarios ya que estudie Redes y tenia que aprenderme las conversiones, pues las direcciones IP , son de 32 bits (8bits.8bits.8bits.8bits) y tenia que hacer subneting y VLSM.
Me ayudo mucho para entenderte a la perfeccion.

Gracias