Wrong result after mpz_mul_2exp

Sebastian Schucht sschucht at fbihome.de
Wed Oct 31 20:25:39 CET 2007

Hallo together,

I've written some code and get some misteryos error. I'm shift the word 
0x87654321 once to the left. But then I'm geting  the result 0x0ECb8642 
instead of 0x0ECa8642. The following code is an minimal exsample for the 
problem. With all other words I try it works fine.

#include <iostream>
#include <iomanip>
#include <gmp.h>

using namespace std;

int main(int argc, char* argv[])
	mpz_t lmpz_A;
	unsigned int luip_Data[2] = {0x00000002, 0x87654321};
	unsigned int lui_Nr=0;


	mpz_import (lmpz_A, 1, 1, sizeof(unsigned int), 1, 0, &luip_Data[1]);
	mpz_mul_2exp(lmpz_A, lmpz_A, 1);
	mpz_export (luip_Data, &lui_Nr , 1, sizeof(unsigned int), 1, 0, lmpz_A);
	for(unsigned int i=0; i<lui_Nr; i++)
		cout<<hex<<setw(8)<<setfill('0')<<luip_Data[i]<<" ";

- Are there any errors in my code?
- Did I have any mistake in mycalculations?
- or is this a bug?

Thanks for your attention!

Sebastian Schucht

B.Sc. Sebastian Schucht
Teichhausstraße 38
64287 Darmstadt

+49 176 20139739
UIN: 260 121 043
skype: SebastianSchucht
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://gmplib.org/list-archives/gmp-discuss/attachments/20071031/a9d3a0cb/attachment.bin 

More information about the gmp-discuss mailing list