zoukankan      html  css  js  c++  java
  • 基础知识复习(二)——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;
    }
    

      

  • 相关阅读:
    oracle数据库中的单行函数
    Oracle数据库的基本语句
    oracle数据库安装的注意事项
    第一个自动化脚本
    负载均衡__笔记
    计算机名词解释
    开发规范__笔记
    索引_笔记
    主从复制_笔记
    Eclipse Git和sourceTree用法
  • 原文地址:https://www.cnblogs.com/lenkaguo/p/5109905.html
Copyright © 2011-2022 走看看