I think this would be well suited to being a generic function in `num` along side `next_power_of_two`, e.g.

```rust
pub fn is_power_of_two<T: Unsigned + Int>(n: T) -> T {
    (n - one()) & n == zero()
}
```