Conversion de sistemas numéricos

No entiendo la razon por la cual hay algunos numeros que no pueden ser convertidos a algun sistema. Por ejemplo:

El 517 decimal a binario: aplicando las divisiones sucesivas da

1000000101, pero lo hago utilizando la calculadora o el excel y me arroja un error.

Lo mismo ocurre con otros sistemas de numeración:

El 819 octal a decimal, ¿porque no se puede convertir?

¿Cuales son las restricciones?. En ningún texto las mencionan. Gracias.
Reply to
Mr.Pmosh
Loading thread data ...

"Mr.Pmosh" escribi=F3 en el mensaje = news:xqobc.22861$ snipped-for-privacy@jagger.tie.cl...

Exactamente eso me da si lo convierto con la calculadora del Windows.

Porque el 819 octal no existe. En octal se pasa del 777 al 1000.

--=20 Saludos. Mi web en

formatting link

---------------------------------------- Quitar las XX para responder por mail.

----------------------------------------

Reply to
Robert M. L.

Lo del 517 lo haras mal , y lo del octal pq solo van los digitos del 0 al 7 "Mr.Pmosh" escribió en el mensaje news:xqobc.22861$ snipped-for-privacy@jagger.tie.cl...

Reply to
julian

"Mr.Pmosh" escribió en el mensaje news:xqobc.22861$ snipped-for-privacy@jagger.tie.cl...

no pueden ser

sucesivas da

excel y me

Evidentemente pueden ser convertidos, entre otras cosas porque tú lo has hecho. Con la calculadora necesitas 10 cifras y es posible que simplemente 'no quepa'. Prueba con el 516, 515... si sólo te acepta del 511 para abajo está claro que la calculadora maneja binarios de hasta 9 cifras. Si lo hace del 255 para abajo... hasta 8... Con el excel, algo haces mal, yo no la uso.

No existe en octal, la cifra más alta en octal es el 7; es como convertir FF de decimal a binario, no existe la cifra FF en decimal. Puedes asumir que no es 819 sino 1019 (el 8 es 10) pero según el contexto, no sabes si ese error viene de lejos. Si es un ejercicio, es una trampa.

mencionan.

Porque no las hay. En cualquier sistema puedes representar cualquier número. La restricción es hardware porque la máquina no llega a representar el número.

P.S. Eso debería estar en el grupo de mate ¿alguien sabe qué tal funciona?

Reply to
Franois

Numeros enteros si, pero a veces no pasa lo mismo con los reales, hay numeros que tienen una representacion exacta en decimal (0.1 por ejemplo) y en binario no, así que haces (1/10)*10 y obtienes 0.99999 y al convertilo a entero lo tuncas a 0 y te vuelves loco buscando una explicación ;-)

Reply to
Nolo Pongo

Pero no es una cuestión del sistema de numeración, sino del modo de almacenamiento de la información. 0.1 tiene en binario representaciones tan exactas como en decimal, lo que pasa es que en el modo de almacenamiento que estás usando, no ocurre así. Por ejemplo, utilizando binario en punto fijo, la conversión es absolutamente precisa, dentro del rango que permita el número de bits utilizados. Por cierto, el ejemplo no es el más adecuado, porque en la calculadora más cutre, 0.1 * 10 da como resultado 1.

--

Saludos de José Manuel García snipped-for-privacy@terra.es http://213.97.130.124

"Nolo Pongo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

Reply to
pepitof

Cuando me refería a binario, quería decir a almacenarlo como potencias de 2, es el formato estandard para los numeros reales en un PC. Si usas punto fijo en base 10, en realidad estás trabajndo en decimal. Entonces se podría decir que por ejemplo 1/3 en base diez no es exacto, mientras que en base 3 se escribe 0.1 y es exacto.

Porque los que hacen las calculadores las hacen con conocimiento de lo que hacen. Pero por ejemplo si buscas en google los mensajes del grupo de VB que tengan en el subject la palabra BUG, encontrás un monton de mensajes de gente que ha creído encontrar un bug en VB, cuando lo único que les pasaba es que perdían precision al hacer operaciones en binario, siendo las mismas operaciones exactas trabajando en base diez.

Reply to
Nolo Pongo

"Nolo Pongo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

Es uno de los estándares. No el único, desde luego. Y de hecho, para cálculos precisos se utiliza con frecuencia punto fijo, y el número de bits necesarios para no superar el error máximo que se desea.

Evidentemente, si haces cualquier cosa en base 10, estás trabajando en decimal. Eso es de perogrullo. ;-) Pero se puede usar punto fijo en binario, en octal o en trinario, sin relación ninguna con el decimal. Es tan simple como decidir que los n bits (o cifras) de menor peso están a la derecha del punto, y tendrás n decimales (en la base que estés usando, que en este caso el término decimal confunde un poco; me refiero a cifras no enteras, en la base que estés usando).

1/3 en base 10 es perfectamente exacto. Lo que no es exacto es 0.333333333... Si almacenas el dato en forma de quebrado, es exacto, y sigue siendo decimal. Por eso digo que el problema de no poder representar determinados números no está en la base que uses, sino en la forma en que los almacenes. Y no hablo de teorías sin uso. En sistemas con poca capacidad de cálculo, como microcontroladores de gama baja, se utilizan ambos métodos con frecuencia, tanto las operaciones con quebrados como las operaciones en punto fijo.

Se supone que los que hacen sistemas operativos y compiladores también... se supone.

El problema de ese supuesto bug es que sus descubridores no saben muy bien lo que tienen entre manos, ni como se hace una conversión, ni que registros utiliza VB para los resultados intermedios de las operaciones... Las operaciones en el PC, en el ordenador de la nasa, o en una calculadora de un euro, se hacen siempre en binario, como sabes, y su precisión, evidentemente, no depende de que se use binario o no.

--

Saludos de José Manuel García
jose.mgg@terra.es
http://213.97.130.124
Reply to
pepitof

Supongo que te estas encontrando con una limitación del tamaño de palabra, si por ejemplo el tamaño de palabra es de 8 Bits el máximo valor que puedes representar es de 255 positivo decimal, "1111 1111" binario. El "1 1111

1111" sería -1 decimal, siempre cuando el tamaño de palabra sea 1 byte.

el 819 no es octal, las cifras octales son de 0-7.

Saludos

--
En realidad ese correo lo tengo como vertedero, no mandéis nada ahí. Al
menos que sea publicidad o reclamaciones de facturas sin pagar. 

lococ
Reply to
Angel Suarez Rivero

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.