Hi,
Thank you for your answers, I tried to cast yk to long int as you said, the
result that I get is: xk1=fffbc2ee, and yk1=49898
it's the same result when I cast all the variables
--- En date de : Miar 10.5.11, Grant Edwards <grant.b.edwa...@gmail.com> a
écrit :
De: Grant Edwards <grant.b.edwa...@gmail.com>
Objet: Re: [Mspgcc-users] modulo
À: mspgcc-users@lists.sourceforge.net
Date: Mardi 10 mai 2011, 14h13
On 2011-05-10, Miriam Dali <miriamd...@yahoo.fr> wrote:
> Thank you for your answer , I'm really sorry my question was not clear :(
> I wrote a simple code in C, but when I port it to mspgcc it doesn't give me
> the right value. This is a part of my code:
> unsigned short int xk=3588, yk=47541, yk1, sig=10, de=1;
> unsigned long int xk1;
> xk1=( xk+(sig*(yk-xk)*de));
> yk1=xk1 % 65535;
>
> the result that I expect is xk1=443118 and yk1=49908, but in mspgcc it gives
> me xk1=yk1=49902
> I don't know where is the fault may be in the type choice?
sig*(yk-xk)*de is too big to fit in 16 bits, so the result of that is
getting truncated, and which "wrong" answer you get will depend on the
order in which the mulitply operations are done.
You need to tell the compiler to calculate xk+(sig*(yk-xk)*de using
32-bit operations not 16-bit operations, so make one of the variables
on the right hand side (e.g. yk) a long integer.
--
Grant Edwards grant.b.edwards Yow! I want a WESSON OIL
at lease!!
gmail.com
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users