#ifndef _CAPPNO_H_ #define _CAPPNO_H_ #ifdef _WINDOWS64 #ifdef CAPP_NO_EXPORTS #define CAPP_NO_API __declspec(dllexport) #else #define CAPP_NO_API __declspec(dllimport) #endif #else #define CAPP_NO_API #endif #include #include "system.h" using namespace std; class CAPP_NO_API CAppNo { public: unsigned int value_array[4]; public: CAppNo( unsigned int value1, unsigned int value2 = 0, unsigned int value3 = 0, unsigned int value4 = 0); CAppNo(); ~CAppNo(); // 重载操作符位与&、位或|、取反~、判等==(!=)、赋值(常数)、取余、整除、输出 CAppNo operator&(const CAppNo value); CAppNo operator&=(const CAppNo value); CAppNo operator|(const CAppNo value); CAppNo operator|=(const CAppNo value); CAppNo operator~(); bool operator==(const CAppNo value); bool operator ==(const unsigned int value); bool operator!=(const CAppNo value); bool operator!=(const unsigned int value); int operator=(const unsigned int value); CAppNo operator+(const CAppNo value); CAppNo operator+=(const CAppNo value); CAppNo operator-(const CAppNo value); CAppNo operator%(const unsigned int value); CAppNo operator/(const unsigned int value); CAppNo operator*(const unsigned int value); friend CAPP_NO_API ostream& operator<<(ostream&,const CAppNo&); bool any();//存在某一位为1,返回true bool none();//全部为0,返回true int count();//被设置成1的位的个数 CAppNo NoToCApp(int index_no);//应用号转为CAppNo int CAppToNo();//CAppNo转为应用号,返回最小号 //int CAppToNo(vector &appno_vec);//CAppNo转为应用号,返回最大号,appno_vec为其中所有应用号 int AppColIndex();//返回应用号所在域 static bool isAppExt();//判断当前是否应用号扩展 private: //static bool m_is_ext; }; #endif