[C con Clase] multiplicar 2 variables
pepe perez
darkmalka en hotmail.com
Lun Feb 16 10:14:52 CET 2015
a ver con esto
uint64_t a=44444444;uint64_t b=55555555;uint64_t c = a % b;
sale el resto de la division.
lo q yo kiero es multiplicar a*b y elresultado se supone q da 128 bits sobre el papel, en programacion directamente solo t puede dar 64 bits, y seran los primeros 64, pero como consigo los 64 ultimos?
yo sigo sin saberlo, pero ya no es necesario encontre una libreria hecha por unos suecos q puedes hacer multiplicaciones d tantos bits como disponga tu ram. cualkier operacion aritmetrica realmente
gmplib.org para el q le interese
From: programante en gmail.com
Date: Sat, 14 Feb 2015 00:45:48 +0100
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] multiplicar 2 variables
El 06/01/15 16:09, pepe perez escribió:
hola muy buenas,
tengo un problema que me trae de cabeza desde hace tiempo y
es el multiplicar 2 variables d 32 bits, que puedan dar un
resultado de 64bits
Si las variables son de 32 bits, el resultado será de 32 bits
(aunque lo almacenes en una variable de 64 bits). Tienes que
convertirlas primero a 64 bits.
yo lo que hago, viene siendo esto pero me parece demasiado
elavorado para hacer una simple multiplicacion
para empezar solo uso 8 digitos en decimal, vamos ni los 32
bits
a=44444444;
b=55555555;
a1=a%10000;
a2=a/10000;
b1=b%10000;
b2=b/10000;
c=a1 + a2%10000*10000 + b1%10000*10000;
resto= b2 + a1/10000 + b1/10000;
me parecen excesivas operaciones aritmeticas para conseguir
el "resto" de una simple multiplicacion, cuando para conseguir
el resto de una division es tan facil como
resto =a%b
Sí, te estás complicando.
uint64_t a=44444444;
uint64_t b=55555555;
uint64_t c = a % b;
O si no quieres que aa y b sean de 64 bits:
uint64_t c = (uint64_t) a % b;
Lo que tú hacías "a mano" sería si el compilador no soportara
valores de este ancho. De hecho se hacen esta clase de cálculos
cuando se trabaja con números de precisión arbitraria (librerías de
bigints).
Pero en este caso no hace falta en absoluto :)
Un saludo
_______________________________________________
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/20150216/77beb2c8/attachment.html>
Más información sobre la lista de distribución Cconclase