[C con Clase] Trabajar con números exageradamente grandes.

Julio Cesar ggeatom en gmail.com
Jue Jun 26 00:09:07 CEST 2014


Buenas tardes, José estos números los pienso utilizar para un "compresor"
que estoy desarrollando, el problema es que el algoritmo llega a utilizar
numeros demasiado grandes; tambien la intencion es comprender un poco como
se soluciona el problema de la manipulacion de numeros grandes, pues soy un
poco de la idea de -casi cualquiera puede incluir la biblioteca y
utilizarla, pero no todos entienden realmente lo que haces en el fondo -,
entonces lo que me interesa tambien es comprenderlo.

Muchas gracias por la orientación Giancarlo, entiendo lo que propones,
ahora solo buscare un poco la implementación en código.

Julio Cesar


El 24 de junio de 2014, 11:03, Giancarlo Dotta <gcdotta en gmail.com> escribió:

> Hola Julio, puedo decirte que  trabajé hace más de 30 años con números de
> longitud muy grande y se solía hacer con aritmética modular, es decir en
> lugar de almacenar el número tal cual lo conocemos nosotros (ya sea en
> binario partido en trozos o como cadena) se guardaba en un array con los
> restos (módulos) de dividir ese número por un conjunto de números primos. O
> sea que ese array tenía los siguientes elementos (N % 2, N%3, N%5, N%7,
> N%11, ...). Resulta que con un número almacenado así, podías hacer las
> operaciones básicas sobre esos restos y al final reconstruir el resultado
> con un algoritmo que ahora ya no recuerdo y que se llamaba algo así como
> "teorema del resto chino". Esta manera de hacer las operaciones es mucho
> más sencilla de programar y rápida de ejecutar que, por ejemplo, tratar de
> multiplicar dos listas de trozos de número.
> En esto se basaban los cálculos usados en álgebra computerizada y
> probablemente sea la base de las librerías que te han contado aquí.
> En google habrá más información de todo esto porque la verdad es que yo ya
> apenas me acuerdo.
> Ciao,
> Giancarlo
>
>
> El 20 de junio de 2014, 20:50, José Luis Torre <
> joseluistorrehernandez en gmail.com> escribió:
>
> Hola Julio:
>>
>> Si nos explicas qué es lo que quieres hacer con estos números, quizás
>> podríamos orientarte algo mejor.
>>
>> Saludos
>> José Luis
>>
>>
>>
>> El 19 de junio de 2014, 17:09, Julio Cesar <ggeatom en gmail.com> escribió:
>>
>>>  Buenas tardes, gracias por responder y una disculpa por no haber sido
>>> preciso en mi pregunta. A lo que me referia Facundo era a si C genera de
>>> manera automatica un binario asociado a un numero de, por ejemplo, 500
>>> cifras. Pero por lo que mencionas, entiendo que no lo hace pues es
>>> imposible hacerlo con 32 o 64 bits (dependiendo el procesador). A modo de
>>> ejemplo y para dar luz a mi pregunta, tomemos el numero
>>> 999,999,999,999,999,999,999,999,999,999,999,999 999,999,999,999,999,999 a
>>> este numero C no le asocia un binario de forma automatica, si estoy mal
>>> corrigeme. Además mi idea noto se reafirma un poco, pues noto que en el
>>> ejemplo de Ivan, cuando el pasa el numero, no lo pasa tal cual como un
>>> numero, mas bien, como una cadena.
>>>
>>> Así que supongo para numeros muy grandes, en un principio los debo
>>> tratar como una cadena para despues pasarlo a la estructura (o la clase)
>>> definida en la cual ya tengo sobrecargados los operadores.
>>>
>>> Me han ayudado demasiado a entender un poco más este problema, muchas
>>> gracias a todos, que tengan buen día.
>>>
>>> Julio Cesar
>>>
>>> _______________________________________________
>>> Lista de correo Cconclase Cconclase en listas.conclase.net
>>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>>
>>
>>
>>
>> --
>> José Luis Torre
>> ww.ehu.es
>>
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140625/eb62c0ec/attachment.html>


Más información sobre la lista de distribución Cconclase