answer = (x || 7) + 1;

Dave

On Sep 25, 6:56 am, Krunal Modi <[email protected]> wrote:
> Q: Write an algorithm to compute the next multiple of 8 for a given
> positive integer using bitwise operators.
>
> Example,
> (a) For the number 12, the next multiple of 8 is 16.
> (b) For the number 16, the next multiple of 8 is 24.
> -------------------------
> I have written a code using bitwise operators...but, I am not happy
> with the solution....Is there any ONE LINE solution ?
> Here, is my code.
> Approach: shift left till LSB is 0 (say n number of times) then, OR
> with 1, finally shift right (same number of times).
>
> #include<stdio.h>
>
> int main(){
>         int count,m,n,ans,t;
>
>         printf("Enter any number :");
>         scanf("%d",&n);
>
>         m=8; //multiple of 8 !!
>         ans=0;
>         while(ans<=n){
>                 t = m;
>                 while(t){
>                         count=0;
>                         while(ans&1){
>                                 count++;
>                                 ans = ans>>1;
>                         }
>                         ans = ans|1;
>                         ans = ans<<count;
>                         t--;
>                 }
>         }
>
>         printf("[%d]\n",ans);
>
>         return 0;
>
>
>
> }- 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 [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?hl=en.

Reply via email to