bitfield.h
来自「在嵌入linux-arm上运行的bt下载应用程序」· C头文件 代码 · 共 53 行
H
53 行
#ifndef BITFIELD_H#define BITFIELD_H#include <sys/types.h>class BitField{ private: static size_t nbits; static size_t nbytes; unsigned char *b; size_t nset; inline void _recalc(); inline void _setall(unsigned char* buf); inline void _set(size_t idx); public: BitField(); BitField(size_t n_bits); BitField(const BitField &bf); ~BitField(){ if(b) delete []b; } void operator=(const BitField &bf); void SetAll(); void SetReferBuffer(char *buf); void Set(size_t idx); void UnSet(size_t idx); int IsSet(size_t idx) const; int IsFull() const { return (nset >= nbits) ? 1 : 0; } int IsEmpty() const { return (nset == 0) ? 1 : 0; } size_t Count() const { return nset;} size_t NBytes() const { return nbytes; } size_t NBits() const { return nbits; } size_t Random() const; void Comb(const BitField &bf); void Except(const BitField &bf); void Invert(); void And(const BitField &bf); int WriteToFile(const char *fname); int SetReferFile(const char *fname); void WriteToBuffer(char *buf);};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?