Hi, now lets suppose we have to reverse the bits of an integer let n= 1101 then o/p = 1011 try to do this without temporary variable.
On Wed, Oct 14, 2009 at 7:09 PM, ankur aggarwal <[email protected]>wrote: > @umesh > gud logic.. > > On Wed, Oct 14, 2009 at 3:32 PM, umesh kewat <[email protected]> wrote: > >> *n=(n>>x)|(n<<(32-x));* >> >> *ex: n=11101001, x=2 suppose here n is 8 bit long* >> * >> n=(11101001>>2)|(11101001<<4) >> >> n=(00111010)|(01000000) >> >> now n is 01111010*..... >> >> >> On Tue, Oct 13, 2009 at 9:18 AM, Raghavendra Sharma < >> [email protected]> wrote: >> >>> @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 <[email protected]>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 <[email protected]> >>>> wrote: >>>> > temp = (0xFFFF >> (32 - x)) & n; >>>> > n = (n >> x) | ( temp << (32 -x)); >>>> > >>>> > On Mon, Oct 12, 2009 at 5:32 PM, ankur aggarwal < >>>> [email protected]>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 - >>>> >>>> >>>> >>> >>> >>> >> >> >> -- >> Thanks & Regards >> >> Umesh kewat >> >> >> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/algogeeks -~----------~----~----~----~------~----~------~--~---
