@Ankur I am assuming the integer to be 32 bits. actually it should be
0xFFFFFFFF
step 1 :  temp =  (0xFFFFFFFF >> (32 - x)) & n;
step 2 :  n  =  (n  >> x) | ( temp << (32 -x));

The first step extracts the lower x bits and second step moves upper bits to
left side and puts the lower x bits at the beginning.

for example the integer is  0x12345678 and x = 4 then
temp = 0x8

(n >> x) = 0x01234567 and temp << (32 - x) is 0x80000000

and  (n >> x) | (temp << (32 -x)) ix 0x81234567


So temp will contain

On Tue, Oct 13, 2009 at 12:07 AM, GauravNITW <gauravkis...@gmail.com> wrote:

>
> How abt this..?
>
> for(i=0;i<x;i++)
>  {
>    res=no&1U;
>    no=no>>1;
>    if(res==1)
>      no=no|32768U;
>    else
>      no=no|0U;
>  }
>  printf("\nFinal value %u",no);
>
>
> On Oct 12, 8:11 pm, Raghavendra Sharma <raghavendra.vel...@gmail.com>
> wrote:
> > temp =  (0xFFFF >> (32 - x)) & n;
> > n  =  (n  >> x) | ( temp << (32 -x));
> >
> > On Mon, Oct 12, 2009 at 5:32 PM, ankur aggarwal <
> ankur.mast....@gmail.com>wrote:
> >
> >
> >
> > > *You are given a integer and you want to rotate the bits of the number
> by
> > > a value x. Consider the right rotation by x means the least significant
> x
> > > bits should go out from left and take the position of most significant
> x
> > > bits.*- Hide quoted text -
> >
> > - Show quoted text -
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to