Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: fafafa01 en 2 Julio 2016, 23:33 pm



Título: Representación decimal en la computadora
Publicado por: fafafa01 en 2 Julio 2016, 23:33 pm
Buenas, mi profesor me explico que las computadoras solo "comprenden" la representación de números binarios, por eso una computadora "entiende" el numero 5 como 101. mi duda es, si las computadoras solo comprenden el numero binario¿como hacen para representar números en base 10? saludos.

como hace para hacer:
1x2^2+0X2+1*2^0=5 si no sabe lo que es un dos


Título: Re: Representación decimal en la computadora
Publicado por: engel lex en 2 Julio 2016, 23:41 pm
no sabe lo que es un dos? pero 10 en binario es lo que tu conoces como 2... es decir no puedes decir "como los ingleses hacen matemáticas si ellos usan "one, two..." y los numeros son uno, dos... es lo mismo, es otro lenguaje, otra representación de la misma información...

sobre el numero decimal es más complejo... https://es.wikipedia.org/wiki/Coma_flotante (https://es.wikipedia.org/wiki/Coma_flotante)


Título: Re: Representación decimal en la computadora
Publicado por: fafafa01 en 2 Julio 2016, 23:52 pm
eso si lo puede hacer:

1x10^10+0x10^1+*10^0=101

¿pero como convierte el 101 en 5?


Título: Re: Representación decimal en la computadora
Publicado por: engel lex en 2 Julio 2016, 23:58 pm
el problema es que 101 en base 10 no es 101 en binario XD  10110 es 11001012 (el numero abajo se usa para identificar la base en estos casos)

1012 es igual a 510 porque... aquí hay un video muy aburrido, pero lo explica
https://www.youtube.com/watch?v=bBMhiSy1Grc (https://www.youtube.com/watch?v=bBMhiSy1Grc)


Título: Re: Representación decimal en la computadora
Publicado por: fafafa01 en 3 Julio 2016, 00:02 am
1x10^10+0x10^1+*10^0=101

esto esta en base 2, pero visto como base 2, es decir el 10 representa un 2:

por ejemplo 10^101 es igual a 32 en decimal


Título: Re: Representación decimal en la computadora
Publicado por: engel lex en 3 Julio 2016, 00:05 am
entonces no entiendo la duda... creo que tienes una confusión terrible entre ambas bases


Título: Re: Representación decimal en la computadora
Publicado por: fafafa01 en 3 Julio 2016, 00:15 am
creo que  en ultima instancia, la computadora debe tener una tabla con los dígitos numéricos de base 10 para poder pasar:

0----->0
1----->1
2----->10
3----->11
4----->100
5----->101
6----->110
7----->111
8----->1000
9----->1001
y usar logaritmo en base 10 para descomponerlos en base 10:
por ejemplo 1492 en binario es: 10111010100
aplicando log en base 1010 (que es base 10 en decimal) se puede llegar a:

1x1010^11+100x1010^10+1001x1010^1+10x1010^0

luego va a la tabla y el 1 es 1 el 100 es 4 el 1001 es 9 y el 10 es 2
e imprime en la pantalla 1492, pero sino no se como hace


Título: Re: Representación decimal en la computadora
Publicado por: engel lex en 3 Julio 2016, 00:20 am
no tiene tablas XD el solo te muestra las cosas en decimal a ti... tooooodo en el pc, incluyendo la entrada por teclado es en binario... ya la conversión a decimal para que sea legible por ti, es dependiente del programa (y a su vez a las librerías usadas por el mismo, quienes son responsables de la conversión para la lectura humana)


Título: Re: Representación decimal en la computadora
Publicado por: fafafa01 en 3 Julio 2016, 00:26 am
entonces esa es mi duda, si esta todo en binario ¿como hace la conversión a decimal para que sea legible?


Título: Re: Representación decimal en la computadora
Publicado por: engel lex en 3 Julio 2016, 00:37 am
depende propiamente de la compilación del lenguaje pero en general es algo como...

- tengo 11012 y debo mostrarlo
- que tipo de variable es? es letra o numero?
  --es un numero
- debemos convertir a digitos decimal (me ahorro el calculo)... nos quedan 2 digitos... 1 y 11
- debemos buscar su representación en la tabla ascii, sabemos que los números empiezan en 110000, entonces el primer dígito es 110001 y el segundo es 110011
- dibujar los simbolos numero 110001 y 110011 de la tablas ascii

la computadora nunca supo que era un 1 o un 3... simplemente mandó a dibujar un diseño en una tabla (si, se que dije que no habían tablas, pero no las hay en el sentido que dabas a entender)


Título: Re: Representación decimal en la computadora
Publicado por: fafafa01 en 3 Julio 2016, 00:48 am
muchas gracias, la ultima ¿como llegaste al 1 y el 11?


Título: Re: Representación decimal en la computadora
Publicado por: engel lex en 3 Julio 2016, 00:54 am
lo siguiente es binario

Código:
arreglo de numeros a mostrar = vacio
mientras numero mayor o igual que 1010 entonces:
  introducir en arreglo de numeros a mostrar->numero modulo de 1010
  numero = numero / 1010
fin mientras
introducir en arreglo de numeros a mostrar->numero

el introduce los restos de la división entre 10 y el ciclo se rompe cuando la división es menor que 10, por eso lo que quedó en el numero, tambien lo meto en el arreglo... por cierto, nativamente no oma en cuenta decimales, así que lo que pase a ser decimal, simplemente se destruye (la operación se trunca, no se redondea)


Título: Re: Representación decimal en la computadora
Publicado por: Orubatosu en 3 Julio 2016, 13:46 pm
A ver, es posible que tu problema sea mas simple: Un error "de concepto"

Todos los ordenadores se basan en componentes electrónicos. Estos componentes pueden almacenar valores y trabajar con ellos, del mismo modo (a lo bruto) que hace cualquier instalación eléctrica.

Pero, la forma mas simple de almacenar un valor es hacerlo de forma binaria. Esto es "si hay voltaje es un 1, si no lo hay es un cero"

Esto es una aproximación basta y grosera, ya que en realidad hay mas refinamientos, pero básicamente ese es el principio. En un circuito electrónico trabajas en base a que haya o no voltaje en un lugar. Para extendernos mas en detalle en este concepto habría que mirar lo que sería electrónica básica, algebra booleana y cosas por el estilo. Pero en principio imagina que todo se reduce a eso. Si hay señal es "1", y si no la hay es "0"

Es posible teóricamente desde luego crear un sistema donde almacenes números entre 0 y 9 para usar el sistema decimal. En un sistema como este la ausencia de señal sería 0, 1 V sería un 1, etc... pero eso complica enormemente los sistemas (pero mucho) eso sin hablar de que se debería de hacer un sistema mucho mas preciso para que 1.5 V fuera... ¿1 o 2?.

Entraríamos ahora en problemas como cuantos valores de voltaje podemos discriminar en sistemas que trabajen a muy bajo voltaje (un procesador moderno funciona apena a 1.5 V)

Entonces, por una cuestión de conveniencia y sencillez usamos el sistema binario. Las memorias, procesadores y otros circuitos almacenan "0" y "1"

A partir de ahi, matemáticamente se puede hacer una conversión entre diferentes bases numéricas sin problemas. Es posible usar una numeración en base 2, en base 8, 10, 16 o en lo que nos apetezca (de hecho en informática se pueden usar todas esas que te indico) según nuestra conveniencia.

¿Como funciona el sistema decimal?

Pues con numeros entre 0 y 9. Son 10 dígicos, y cada lugar a la izquierda multiplica por 10 el anterior.

Es decir: 3895 es:

3 * 1000
8 * 100
9 * 10
5 * 1

Sencillo ¿no?. En cada posición a la derecha elevas la base por la posición. La que esta mas a la derecha es 1, la siguiente 10, la siguiente 100...

En binario es lo mismo, pero la progresión se basa en el 2

128, 64, 32, 16, 8, 4, 2, 1

De ese modo, el numero 10010110 se pasa a decimal multiplicando cada uno de los numeros por la cantidad correspondiente a su posición y se suma. exactamente igual que en decimal

128 * 1
64 * 0
32 * 0
16 * 1
8 * 0
4 * 1
2 * 1
1 * 0

Total: 150

Y ahora viene la parte interesante. El ordenador trabaja en binario, y los programas que se ejecutan funcionan también en ese sistema. ¿Como te da ese numero?

Porque un ordenador no "sabe" lo que es un numero. El tiene un programa que hace esa conversión y te la representa en pantalla. El sigue unos programas que hacen la conversión y manejan unos dispositivos que de acuerdo con unas tablas de códigos te muestran unos caracteres (esto de modo muy simplista)

Un ordenador al final es poco mas que una calculadora con esteroides. Se limita a almacenar valores, pedirlos, procesarlos y mostrarlos de acuerdo con los programas que almacena, y nada mas.