c++里位运算符的一个比较常见的用法_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > c++里位运算符的一个比较常见的用法

c++里位运算符的一个比较常见的用法

 2011/1/17 7:39:21  slatp  http://slatp.javaeye.com  我要评论(0)
  • 摘要:c++中的位运算符用得比较多,比如MFC传参数时经常使用,下面是它的一个很简单的用法:#include"stdafx.h"#include<iostream>#defineL81#defineL162#defineL324#defineL648#defineCOMPLEX0x10#defineFLOAT0x20#defineSIGN0x40//数值类型enumtype{t_8u=L8,//8位无符号整型t_8s=L8|SIGN,//8位有符号整型t_8sc=L8|SIGN
  • 标签:用法 c++ 一个
c++中的位运算符用得比较多,比如MFC传参数时经常使用,下面是它的一个很简单的用法:
#include "stdafx.h"
#include <iostream>

#define  L8        1
#define  L16       2
#define  L32       4
#define  L64       8
#define  COMPLEX   0x10
#define  FLOAT     0x20
#define  SIGN      0x40

// 数值类型
enum type
{
    t_8u    =  L8,                    //8位无符号整型
    t_8s    =  L8  | SIGN,            //8位有符号整型
    t_8sc   =  L8  | SIGN | COMPLEX,  //8位有符号(整)复数
    t_8f    =  L8  | SIGN | FLOAT,    //8位有符号浮点数
    t_16u   =  L16,                   //16位无符号整数
    t_16s   =  L16 | SIGN,            //16位有符号整数
    t_16sc  =  L16 | SIGN | COMPLEX,  //16位有符号(整)复数
    t_16f   =  L16 | SIGN | FLOAT     //16位有符号浮点数
    // and so on
};

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    type t;
    t = t_8f;
    cout << "8L?"      << bool(t & L8)      << "\n"
         << "sign?"    << bool(t & SIGN)    << "\n"
         << "float?"   << bool(t & FLOAT)   << "\n"
         << "complex?" << bool(t & COMPLEX) << endl;
    return 0;
}


通过|和&,我们就可以通过位标志来判断一些特征,位运算还可以使参数的组合非常直观,。
发表评论
用户名: 匿名