TNB Library
公開メンバ関数 | 全メンバ一覧
CBitSet クラス

Bit管理クラス [詳解]

#include <TnbBitSet.h>

+ CBitSet の継承関係図

公開メンバ関数

 CBitSet (const CBitSet &other)
 コピーコンストラクタ. [詳解]
 
 CBitSet (LPCTSTR lpszBin)
 コンストラクタ. [詳解]
 
 CBitSet (size_t bitSize=32)
 コンストラクタ [詳解]
 
virtual INT_PTR Compare (const CBitSet &t) const
 [確認] 比較 [詳解]
 
CBitSetFlip (INDEX index)
 [設定] BIT反転. [詳解]
 
CBitSetFlip (void)
 [設定] BIT反転. [詳解]
 
CBitSet GetMid (INDEX index, size_t bitSize) const
 [取得] 一部取り出し. [詳解]
 
int GetSignedInt (void) const
 [取得] 数値取り出し. [詳解]
 
LONGLONG GetSignedInt64 (void) const
 [取得] 数値取り出し. [詳解]
 
size_t GetSize (void) const
 [取得] BIT数サイズ取得. [詳解]
 
UINT GetUnsignedInt (void) const
 [取得] 数値取り出し. [詳解]
 
ULONGLONG GetUnsignedInt64 (void) const
 [取得] 数値取り出し. [詳解]
 
virtual bool IsEqual (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
bool IsInRange (INDEX index) const
 [確認] INDEX有効チェック. [詳解]
 
bool operator!= (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
CBitSet operator& (const CBitSet &t) const
 [取得] AND計算結果取得 [詳解]
 
CBitSetoperator&= (const CBitSet &t)
 [計算] AND計算 [詳解]
 
CBitSet operator+ (const CBitSet &t)
 [計算] 足し算結果取得 [詳解]
 
CBitSetoperator+= (const CBitSet &t)
 [計算] 足し算 [詳解]
 
INT_PTR operator- (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
bool operator< (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
CBitSet operator<< (DWORD dwPos) const
 [取得] 右シフト計算結果取得 [詳解]
 
CBitSetoperator<<= (DWORD dwPos)
 [計算] 左シフト計算 [詳解]
 
bool operator<= (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
CBitSetoperator= (const CBitSet &other)
 [代入] コピーオペレータ. [詳解]
 
bool operator== (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
bool operator> (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
bool operator>= (const TNB::CBitSet &t) const
 [確認] 比較 [詳解]
 
CBitSet operator>> (DWORD dwPos) const
 [取得] 左シフト計算結果取得 [詳解]
 
CBitSetoperator>>= (DWORD dwPos)
 [計算] 右シフト計算 [詳解]
 
CBitSet operator^ (const CBitSet &t) const
 [取得] XOR計算結果取得 [詳解]
 
CBitSetoperator^= (const CBitSet &t)
 [計算] XOR計算 [詳解]
 
CBitSet operator| (const CBitSet &t) const
 [取得] OR計算結果取得 [詳解]
 
CBitSetoperator|= (const CBitSet &t)
 [計算] OR計算 [詳解]
 
CBitSet operator~ (void) const
 [取得] BIT反転情報取得 [詳解]
 
CBitSetReset (INDEX index)
 [設定] BITリセット. [詳解]
 
CBitSetReset (void)
 [設定] BITリセット. [詳解]
 
CBitSetSet (INDEX index)
 [設定] BITセット. [詳解]
 
CBitSetSet (void)
 [設定] BITセット. [詳解]
 
CBitSetSetData (size_t size, LPCVOID P)
 [代入] データ代入. [詳解]
 
CBitSetSetInteger (ULONGLONG ullValue)
 [代入] 数値代入. [詳解]
 
CBitSetSetSize (size_t size)
 [設定] BIT数サイズ設定. [詳解]
 
bool Test (INDEX index) const
 [確認] BITの状態. [詳解]
 
CStr ToString (void) const
 [取得] 文字列取り出し. [詳解]
 
virtual ~CBitSet (void)
 デストラクタ [詳解]
 

詳解

Bit管理クラス

BIT数と BIT数分の情報を保持出来ます。
各BITの計算、設定、連結、取り出しなどが容易に可能です。
todo:
現在1BITずつ処理しているため、それほど処理は早く有りません。
必要ファイル
TnbBitSet.h
日付
06/08/10 新規作成
07/03/15 index,size管理を unsignedに変更。

TnbBitSet.h43 行目に定義があります。

構築子と解体子

◆ CBitSet() [1/3]

CBitSet ( size_t  bitSize = 32)
explicit

コンストラクタ

引数
bitSize保持できるBIT数を指定します。省略すると32 です。
例外
CNotSupportException指定ビット数が0以下の場合、スローされます。

TnbBitSet.h97 行目に定義があります。

◆ CBitSet() [2/3]

CBitSet ( LPCTSTR  lpszBin)
explicit

コンストラクタ.

0と1の羅列の文字列からBIT数、内容を読み込みます。

覚え書き
ビット数は文字列長。内容は '0' かそれ以外で、BITのOn,Offを設定しています。
引数
lpszBin0と1の文字列。
例外
CNotSupportException指定文字列長が0以下の場合、スローされます。

TnbBitSet.h115 行目に定義があります。

◆ CBitSet() [3/3]

CBitSet ( const CBitSet other)

コピーコンストラクタ.

保持するBIT数、内容を複製します。

引数
otherコピー元

TnbBitSet.h138 行目に定義があります。

◆ ~CBitSet()

virtual ~CBitSet ( void  )
virtual

デストラクタ

TnbBitSet.h146 行目に定義があります。

関数詳解

◆ Compare()

virtual INT_PTR Compare ( const CBitSet t) const
virtual

[確認] 比較

引数
t比較対象
戻り値
自分は t と同じ
1以上自分は t より大きい
0未満自分は t より小さい

IComparableT< TNB::CBitSet >を実装しています。

TnbBitSet.h648 行目に定義があります。

◆ Flip() [1/2]

CBitSet & Flip ( INDEX  index)

[設定] BIT反転.

引数
indexBIT指定。0〜(BIT数-1)で指定します。
戻り値
自分の参照

TnbBitSet.h417 行目に定義があります。

◆ Flip() [2/2]

CBitSet & Flip ( void  )

[設定] BIT反転.

覚え書き
全BITが反転します。
戻り値
自分の参照

TnbBitSet.h431 行目に定義があります。

◆ GetMid()

CBitSet GetMid ( INDEX  index,
size_t  bitSize 
) const

[取得] 一部取り出し.

指定の位置から、指定BIT数分の情報を、新しい CBitSet に格納します。

引数
indexBIT指定。
bitSize取り出すBIT数。
戻り値
指定BIT数の CBitSet

TnbBitSet.h459 行目に定義があります。

◆ GetSignedInt()

int GetSignedInt ( void  ) const

[取得] 数値取り出し.

最大32BITまで取り出すことが可能です。

戻り値
数値

TnbBitSet.h248 行目に定義があります。

◆ GetSignedInt64()

LONGLONG GetSignedInt64 ( void  ) const

[取得] 数値取り出し.

最大64BITまで取り出すことが可能です。

戻り値
数値

TnbBitSet.h285 行目に定義があります。

◆ GetSize()

size_t GetSize ( void  ) const

[取得] BIT数サイズ取得.

本インスタンスで使用可能なBIT数を返します。

戻り値
BIT数サイズ

TnbBitSet.h323 行目に定義があります。

◆ GetUnsignedInt()

UINT GetUnsignedInt ( void  ) const

[取得] 数値取り出し.

最大32BITまで取り出すことが可能です。

戻り値
数値

TnbBitSet.h230 行目に定義があります。

◆ GetUnsignedInt64()

ULONGLONG GetUnsignedInt64 ( void  ) const

[取得] 数値取り出し.

最大64BITまで取り出すことが可能です。

戻り値
数値

TnbBitSet.h267 行目に定義があります。

◆ IsEqual()

virtual bool IsEqual ( const TNB::CBitSet t) const
virtualinherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じ
false自分は t と異なる

TnbComparable.h73 行目に定義があります。

◆ IsInRange()

bool IsInRange ( INDEX  index) const

[確認] INDEX有効チェック.

値が、0〜(BIT数-1)の範囲か判定します。

引数
indexBIT指定。
戻り値
true有効。
false無効。

TnbBitSet.h447 行目に定義があります。

◆ operator!=()

bool operator!= ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と異なる
false自分は t と同じ

TnbComparable.h98 行目に定義があります。

◆ operator&()

CBitSet operator& ( const CBitSet t) const

[取得] AND計算結果取得

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
計算結果

TnbBitSet.h581 行目に定義があります。

◆ operator&=()

CBitSet & operator&= ( const CBitSet t)

[計算] AND計算

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
自分の参照

TnbBitSet.h488 行目に定義があります。

◆ operator+()

CBitSet operator+ ( const CBitSet t)

[計算] 足し算結果取得

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
計算結果

TnbBitSet.h560 行目に定義があります。

◆ operator+=()

CBitSet & operator+= ( const CBitSet t)

[計算] 足し算

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
自分の参照

TnbBitSet.h477 行目に定義があります。

◆ operator-()

INT_PTR operator- ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
自分は t と同じ
1以上自分は t より大きい
0未満自分は t より小さい

TnbComparable.h82 行目に定義があります。

◆ operator<()

bool operator< ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t より小さい
false自分は t と同じか大きい

TnbComparable.h106 行目に定義があります。

◆ operator<<()

CBitSet operator<< ( DWORD  dwPos) const

[取得] 右シフト計算結果取得

引数
dwPosシフト数
戻り値
計算結果

TnbBitSet.h614 行目に定義があります。

◆ operator<<=()

CBitSet & operator<<= ( DWORD  dwPos)

[計算] 左シフト計算

引数
dwPosシフト数
戻り値
自分の参照
todo:
未実装です。

TnbBitSet.h549 行目に定義があります。

◆ operator<=()

bool operator<= ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じか小さい
false自分は t より大きい

TnbComparable.h114 行目に定義があります。

◆ operator=()

CBitSet & operator= ( const CBitSet other)

[代入] コピーオペレータ.

保持するBIT数、内容を複製します。

引数
otherコピー元
戻り値
自分の参照

TnbBitSet.h161 行目に定義があります。

◆ operator==()

bool operator== ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じ
false自分は t と異なる

TnbComparable.h90 行目に定義があります。

◆ operator>()

bool operator> ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t より大きい
false自分は t と同じか小さい

TnbComparable.h122 行目に定義があります。

◆ operator>=()

bool operator>= ( const TNB::CBitSet t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じか大きい
false自分は t より小さい

TnbComparable.h130 行目に定義があります。

◆ operator>>()

CBitSet operator>> ( DWORD  dwPos) const

[取得] 左シフト計算結果取得

引数
dwPosシフト数
戻り値
計算結果

TnbBitSet.h625 行目に定義があります。

◆ operator>>=()

CBitSet & operator>>= ( DWORD  dwPos)

[計算] 右シフト計算

引数
dwPosシフト数
戻り値
自分の参照
todo:
未実装です。

TnbBitSet.h537 行目に定義があります。

◆ operator^()

CBitSet operator^ ( const CBitSet t) const

[取得] XOR計算結果取得

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
計算結果

TnbBitSet.h603 行目に定義があります。

◆ operator^=()

CBitSet & operator^= ( const CBitSet t)

[計算] XOR計算

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
自分の参照

TnbBitSet.h522 行目に定義があります。

◆ operator|()

CBitSet operator| ( const CBitSet t) const

[取得] OR計算結果取得

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
計算結果

TnbBitSet.h592 行目に定義があります。

◆ operator|=()

CBitSet & operator|= ( const CBitSet t)

[計算] OR計算

引数
t計算相手。BITサイズが異なっていても構いません。
戻り値
自分の参照

TnbBitSet.h505 行目に定義があります。

◆ operator~()

CBitSet operator~ ( void  ) const

[取得] BIT反転情報取得

戻り値
BITが反転した CBitSet

TnbBitSet.h635 行目に定義があります。

◆ Reset() [1/2]

CBitSet & Reset ( INDEX  index)

[設定] BITリセット.

引数
indexBIT指定。0〜(BIT数-1)で指定します。
戻り値
自分の参照

TnbBitSet.h392 行目に定義があります。

◆ Reset() [2/2]

CBitSet & Reset ( void  )

[設定] BITリセット.

覚え書き
全BITがリセットされます。
戻り値
自分の参照

TnbBitSet.h406 行目に定義があります。

◆ Set() [1/2]

CBitSet & Set ( INDEX  index)

[設定] BITセット.

引数
indexBIT指定。0〜(BIT数-1)で指定します。
戻り値
自分の参照

TnbBitSet.h364 行目に定義があります。

◆ Set() [2/2]

CBitSet & Set ( void  )

[設定] BITセット.

覚え書き
全BITがセットされます。
戻り値
自分の参照

TnbBitSet.h378 行目に定義があります。

◆ SetData()

CBitSet & SetData ( size_t  size,
LPCVOID  P 
)

[代入] データ代入.

保持する BYTE数、内容を指定します。本クラスのサイズは、指定Byte数×8になります。

引数
sizeコピー元データ長
Pコピー元データ
戻り値
自分の参照
例外
CNotSupportException指定文字列長が0以下の場合、スローされます。

TnbBitSet.h182 行目に定義があります。

◆ SetInteger()

CBitSet & SetInteger ( ULONGLONG  ullValue)

[代入] 数値代入.

保持するBIT数はそのままに、内容に格納します。

覚え書き
BIT数によっては値が入りきらないかもしれません。
引数
ullValue代入値
戻り値
自分の参照

TnbBitSet.h206 行目に定義があります。

◆ SetSize()

CBitSet & SetSize ( size_t  size)

[設定] BIT数サイズ設定.

本インスタンスで使用可能なBIT数を設定します。

引数
sizeサイズ。
戻り値
自分の参照

TnbBitSet.h334 行目に定義があります。

◆ Test()

bool Test ( INDEX  index) const

[確認] BITの状態.

引数
indexBIT指定。0〜(BIT数-1)で指定します。
戻り値
trueセットされています('1')。
falseリセットされています('0')。

TnbBitSet.h350 行目に定義があります。

◆ ToString()

CStr ToString ( void  ) const

[取得] 文字列取り出し.

'0' '1' の羅列の文字列で内容を取り出すことが可能です。 この文字列は、コンストラクタで指定可能です。

戻り値
文字列。

TnbBitSet.h305 行目に定義があります。