基础知识复习(二)——stdafx.h 头文件及x&(x-1)运算
今天好久没写过C++程序了,使用VS2013 新建空的控制台程序,结果自动生成了头文件和main 方法。
就了解了stdafx.h头文件的含义及用法。
stdafx:standard Application Framework extended,是预编译文件,将工程中的使用的一些标准的MFC 头文件预先编译,该工程再次编译时,就不需要编译该头文件,可直接使用编译的结果,可加快编译速度,节省程序运行时间。
x&(x-1),可将X中最后一位1 置为0;
使用x&(x-1)有两种用法:1,求x中包含1的位数,2 判断x是否为2的N次方;
具体代码:
// ConsoleApplication2.cpp: 主项目文件。 #include "stdafx.h" #include "iostream" using namespace System; using namespace std; //判断x中包含1的个数 int CountOneSum(int x) { int count = 0; while (x > 0) { x = (x&(x - 1));//将X中最后一个1 变为0,则执行与操作时,减少1的数量; count++; } return count; }; //判断一个数是否为2的N 次方,是2的N次方,则二进制只包含一个1 和若干0,x-1之后可将所有位置反,从而如果&操作为0,则是2的N次方。 int funcTwo(int x) { if (x&(x - 1) == 0) return 1; else return 0; } int main(array<System::String ^> ^args) { int x = 9999; cout << CountOneSum(x); return 0; }