¿Por qué el binario fue (y es) más efectivo?

Iniciado por SrCooper, 5 Marzo 2014, 19:20 PM

0 Miembros y 1 Visitante están viendo este tema.

SrCooper

Buenos días a todos, el otro día estaba leyendo un artículo sobre los origenes de la informática y me surgió una duda, a ver si alguien la puede resolver  :D

En el artículo decía que una de las primeras computadoras fue la ENIAC, que era decimal, ocupaba varias habitaciones y pesaba treinta toneladas. Más adelante apareció la EDVAC, que fue la primera en utilizar el código binario y en el artículo se menciona que esto redujo significativamente el tamaño y la complejidad de esta.

Mi pregunta es, básicamente, ¿por qué el uso la aritmética binaria redujo el tamaño y el peso de la máquina? Es decir, ¿por qué el binario fue más efectivo que el decimal?

Un saludo y gracias de antemano

PD: No sabía muy bien en que subforo colocar este tema, mil disculpas si no es el acertado  ;D

Randomize

Por el uso de condensadores que cargados son uno y vacíos son cero.

¿Te has fijado en el tamaño de los condensadores de hoy día?


"Nanometros" es un vocablo que deberías también conocer.

Bundor

Por el uso de transistores, los condensadores solo filtran el voltaje.

11111111 -> 1 byte -> 255 posibles valores
12345678 -> bits con un valor asignado -> 36 posibles valores

es más eficiente el primero, un procesador con el mismo numero de bits realizaría menos operaciones.


A mi también me asaltan estas curiosidades de vez en cuando. Por ejemplo una de las cosas que no entiendo, porque se empieza a contar desde el 0 en la informática.

Es algo que veo absurdo, un for que cuente desde el 0 es subrealista.

En el mundo real si tienes una caja con 3 compartimentos y quieres poner 1 objeto en cada uno empiezas a contar desde el objeto 1 al 3, igual que el compartimento 1 al 3.


Gh057

#3
jajaj muy bueno Bundor lo del for! pero no pensaste que tu estado inicial realmente es cero? cuando llenas el primer compartimiento tienes uno...

con respecto a tu consulta SrCooper, bueno es una suma de hechos... es cierto que la reducción coincide con el uso del sistema binario (analogía directa con recibir una señal o no) pero recuerda que también fue tanto por la implementación de la abstracción en la máquina de J. Von Neumann, como por el uso de nuevas técnicas; los primeros modelos eran valvulares, luego apareció el transistor, el circuito integrado, el chip... la reducción de tamaño y aumento de capacidad en los transistores y en dispositivos de almacenamiento también conlleva a la miniaturización del hard...

como podrás observar el sistema numérico utilizado no es todo... interesante va a ser con el desarrollo cuántico, porque puede estar 0, 1... o ambos! jajajaa
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

engel lex

lo de por qué empieza en 0 puedes verlo así...




tienes una regla y vas a colocar 3 elementos de 1cm...

en que marca colocas el primero?
en el 0 cierto? y el 3ero entonces lo quedas alineando a la linea del 2...

entonces lo puedes ver como "¿qué numero marca al espacio que estoy usando?"
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Bundor

Agradezco las respuestas, pero sigo pensando que no tiene lógica.

En una carrera ganaría el que está en la posición 0.
No tendría 2 manos, tendría 1 mano la otra sería la mano 0.
Y así hasta lo absurdo.

Que nos hayamos acostumbrado a hacerlo así no justifica que tenga lógica, de hecho creo que no interviene nada relacionado con la potencia de un pc, creo que es una tradición bastante retorcida.

#!drvy

#6
Es cuestión de verlo de diferente manera xD

CitarEn una carrera ganaría el que está en la posición 0.

Todos empiezan en la posición 0. En una carrera siempre se avanza en cuanto a numero. Por ejemplo en una carrera de correr 500 metros, los participantes SIEMPRE avanzan. El hecho de que uno sea primero o segundo es una simple designación que le damos para diferenciarlo. Realmente, el primero es el que mas metros ha recorrido durante el menor tiempo posible. pero si lo plasmas en datos seria:

1ro - 500 m - 15s
2do - 500 m - 16s
3ro - 500 m - 18s

CitarNo tendría 2 manos, tendría 1 mano la otra sería la mano 0.

Cuando empiezas a contar, empiezas a contar desde cero y dices, 1 mano, 2 manos. Siempre tienes que avanzar desde algún punto. Lo mismo con los dedos, 1 dedo (ya has avanzado), 2 dedos (ya has avanzado dos veces) etc...

http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
http://en.wikipedia.org/wiki/Zero-based_numbering

Lo de los bucles for tiene una buena explicación (esta en el enlace de la wikipedia).

Si yo hago un bucle for, y quiero que este saque 9 números hago un for:
for (i=0; i<9; i++){ print i; }

Me imprimirá 0,1,2,3,4,5,6,7,8 que son nueve números.
Pero que pasa si en vez de 0 empezamos por 1 ? 1,2,3,4,5,6,7,8 son 8 números.

Por tanto, tendría que hacer que el bucle empize en 1 y termine en 10 para imprimir 9 nuevos ·_·

Saludos

Gh057

hola Bundor, es derivado también del concepto de la representación gráfica de los números en una recta, para graficarla solo necesitas el cero y una unidad, luego cada número (por el axioma del buen orden) sabrás cuantas unidades a la derecha o a la izquierda se encontrará del cero... y nace así otro concepto, el de valor absoluto, que representa la  distancia entre ellos.

igualmente puede tener algo de retorcido... así son los números jejejej saludos!  ;D
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

Bundor

A ver no pretendo levantar polémica solo era una curiosidad, de todas formas os expongo mi punto de vista.

Comentais el valor absoluto;  si creo un vector de 5 posiciones tengo 0-1-2-3-4 posiciones relaes. Esto en la realidad no se dá. Tu cuentas 5 intentos y tienes 1-2-3-4-5 , valor absoluto el 5. El valor que se almacena dentro es el que importa, si es un número real (con números negativos y positivos con su paso por cero), decimal, octal, etc.

Si cogemos un sistema como los fluidos que empieza por el 0 y se va llenando hasta el 1 pues vale, pero contaríamos "0,1" o "0,algo", pero esto es UN VALOR,  no una POSICIÓN. Lo pongo en grande para diferenciarlo mejor.

A mi me gustan las cosas sencillas por lo tanto los vectores, arrays y bucles serian mas sencillos. Es cuestión de sumarle 1 pero eso hace el codigo menos eficiente, es una operación extra. Por eso veo todo eso una chapuza, que igual tiene su explicación de ser pero la desconozco.

Gh057

hola Bundor, mi comentario fue de la recta numérica, pareciera que leíste solo el final (que era a título informativo no era parte del uso del cero) y no le veo nada de ilógico, comentas de la posición, pero es lógico que empieces desde el cero (no creo que empieces a caminar ya con un paso dado! ;D)

vuelvo a repetir, es tan solo un estado inicial... e igualmente siempre podrás usar tu propias normas al programar con las que estés a gusto o te sientas más cómodo, eso es lo bueno del código, saludos!  ;D
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...