给定一个接收int变量的bool数据类型的方法,什么是单行代码,它将确定int是否为2或2 ^ n的指数..... 2,4,8,16, 32等我知道使用while循环和if语句的方法,但我正在寻找它在一条线上.
uint v; // we want to see if v is a power of 2
bool f; // the result goes here
f = (v != 0) && ((v & (v - 1)) == 0);
Run Code Online (Sandbox Code Playgroud)
只需检查数字的对数(基数2)是否为整数.
在一行C#中:
Math.Log(x, 2) % 1 == 0
Run Code Online (Sandbox Code Playgroud)
按位操作更有趣,但是主人怜悯任何人必须维护该代码.