Mail Archives: djgpp/2005/05/25/16:17:36
----- Original Message -----
From: "cosmos" <cosmos AT tvtel DOT pt>
To: <djgpp AT delorie DOT com>
Sent: Wednesday, May 25, 2005 8:27 PM
Subject: Re: to check given no. is power of 2
> Hi,
>
> Mathematically, a given number "N" is a power of 2 if "log(N) / log(2)" is
> an integer, right? So:
>
> #include <stdio.h>
> #include <math.h>
> double param, fractpart, intpart;
>
> param = log(N) / log(2);
> fractpart = modf (param , &intpart);
> if (fracpart == 0) return 1; else return 0;
Regards,
Rui Fernandes
>
>
> ----- Original Message -----
> From: "Martin Ambuhl" <mambuhl AT earthlink DOT net>
> Newsgroups: comp.os.msdos.djgpp
> To: <djgpp AT delorie DOT com>
> Sent: Wednesday, May 25, 2005 7:39 PM
> Subject: Re: to check given no. is power of 2
>
>
> > Gerd Termathe wrote:
> > > "aveo" <rahul DOT h AT gmail DOT com> schrieb im Newsbeitrag
> > > news:1116997063 DOT 905915 DOT 71670 AT z14g2000cwz DOT googlegroups DOT com...
> > >
> > >>hi all
> > >>i need a C code that checks given no. is power of 2 or not without
> > >>checking any condition.
> > >>
> > >
> > >
> > > int is_power_of_2 (int N)
> > > {
> > > if ( N!=0 && (N&(N-1))==0 ) return 1; else return 0;
> > > }
> >
> > Why an if ... else?
> > Why use uppercase for non-macros?
> > Why use signed integers?
> >
> > inline unsigned is_power_of_2 (unsigned n)
> > {
> > return (n && !(n&(n-1)));
> > }
> >
>
>
- Raw text -