1 位运算
1.1 如何判断一个数是不是2的整数次方?
在FatFS源码看到的技巧,直接上代码:
// CodeTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
bool IsPowOf2(int num)
{
bool ret = false;
if ((num > 0) && !(num & (num - 1)))
{
ret = true;
}
return ret;
}
int main()
{
for (int i = -1024; i <= 1024; i++)
{
if (IsPowOf2(i))
{
cout << i << endl;
}
}
system("pause");
return 0;
}
本文介绍了一种使用位运算判断一个数是否为2的整数次方的技巧,通过检查数与其减一后的按位与运算结果来实现。此方法源自FatFS源码,提供了一个高效的解决方案。
6万+

被折叠的 条评论
为什么被折叠?



