XBitField 一个01标志类
来源:互联网 发布:js公式编辑器 编辑:程序博客网 时间:2024/05/22 13:26
#ifndef XBITFIELD_H#define XBITFIELD_Hclass XBitField{public: /** Default constructor */ XBitField(int bc); /** Default destructor */ virtual ~XBitField(); // 指定bit位为1 int set (int bit); // 返回bit位值 int get (int bit); // 指定bit位为0 int reset (int bit);protected:private: unsigned int *pField_; //!< Member variable "*pField_" unsigned int uBitCount_; //!< Member variable "uBitCount_"};#endif // XBITFIELD_H
#include "XBitField.h"#include <cstdio>#include <windows.h>#define SZ_UINT sizeof(unsigned int)XBitField::XBitField(int bc){ //ctor uBitCount_ = bc; pField_ = new unsigned int[bc/(SZ_UINT*8)]; //memset(pField_, 0, bc); printf("SZ_UINT: %d\nnumber: %d\n", SZ_UINT, bc/(SZ_UINT*8));}XBitField::~XBitField(){ //dtor if (pField_) delete [] pField_;}int XBitField::set (int bit){ if (bit >= uBitCount_ || !pField_) return -1; pField_[bit/(SZ_UINT*8)] |= (0x00000001 << (bit%(SZ_UINT*8)-1)); return 0;}int XBitField::reset (int bit){ if (bit >= uBitCount_ || !pField_) return -1; pField_[bit/(SZ_UINT*8)] &= ~(0x00000001 << (bit%(SZ_UINT*8)-1)); return 0;}int XBitField::get (int bit){ if (bit >= uBitCount_ || !pField_) return -1; return (pField_[bit/(SZ_UINT*8)] & (0x00000001 << (bit%(SZ_UINT*8)-1)) ? 1 : 0);}
0 0
- XBitField 一个01标志类
- 一个关于复合型枚举标志位的功能类
- 窗口类标志
- 标志
- 建立一个开始博的标志
- 一个Select完成的标志列
- 如何更换一个网站的Plone标志
- 创建一个有吸引力的标志
- 960网格,一个web时代的标志。
- java 标志一个方法为过时方法
- Unity的每个界面右下角有一个麦克风标志和一个刷新标志解决方案
- 俞敏洪:一个优秀的人的标志和特点
- 俞敏洪:一个优秀的人的标志和特点
- 一个完美的标志设计有助于完善的品牌识别
- 俞敏洪:一个优秀的人的标志和特点
- 俞敏洪:一个优秀的人的标志和特点
- 俞敏洪:一个优秀的人的标志和特点
- 用一个Int 存贮多个标志,还有什么办法?
- 《算法概论》第二次作业之阅读资料
- POJ1703 Find them, Catch them
- Spring整合jaxws基于handles验证
- 通过实例理解AOP原理
- 国内最流行的三大PHPCMS程序比较
- XBitField 一个01标志类
- node.js学习--jade
- 使用myeclipse时出现java.lang.UnsupportedClassVersionError: Bad version number in .class file
- 2014-3-17 10:57 不知道写些什么,就随笔杂谈吧!
- Android中一些有用的小方法(不定时更新)
- 港交所已经错过了一大波中国本土的高科技公司
- cocos2d-x-3.0alpha0-pre的android环境编译报错override
- StringUtils
- 通过联系人号码获取联系人的姓名(android开发)