Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C
Expertise: Advanced
Aug 14, 2003

Fast Check for 2^N (2 power N) Numbers

To test if an integer is a power of 2 (1,2,4,8,16...256...), use the following code:

if (!(x & (x-1)) then ...
Because 2^N-1 numbers have no common bits with 2^N in binary, they require only 1 logical AND and 1 SUBTRACT. Note that this only works with positive numbers:

2^N   : 100000000000.....
2^N-1 : 011111111111.....
Julien Olivier
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date