# [Tutor] Power of Two Function

Visar Zejnullahu visar.zejnullahu at gmail.com
Sat Sep 1 01:22:28 CEST 2012

```http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
You have many useful bit hacks here.

Visar Zejnullahu

On Sat, Sep 1, 2012 at 1:17 AM, Visar Zejnullahu <visar.zejnullahu at gmail.com
> wrote:

> 2^n in binary is 10...0 (with n 0s), and 2^n - 1 is 11...1 (with n 1s). So
> if you do bitwise and (&) to 2^n and 2^n-1 you get all 0s. That's why you
> check if (num & (num - 1)) == 0.
>
> Visar Zejnullahu
>
>
>
> On Sat, Sep 1, 2012 at 12:54 AM, Lazar <chaostorm at gmail.com> wrote:
>
>> Hello,
>>
>> I'm fairly new to Python and still learning.
>>
>> Can someone please explain to me in what way the following function
>> checks if a number is a power of two? Basically, the second line of
>> code is what I can't really grasp:
>>
>> def is_power2(num):
>>         return num != 0 and ((num & (num - 1)) == 0)
>>
>> Thank you,
>> Lazar
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> To unsubscribe or change subscription options:
>> http://mail.python.org/mailman/listinfo/tutor
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20120901/2b8f1867/attachment.html>
```