1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
template
<> //
the following is a template class with no templated parameters class
Storage8< bool >
//
we're specializing Storage8 for bool { //
What follows is just standard class implementation details private : unsigned
char
m_tType; public : void
Set( int
nIndex, bool
tType) { //
Figure out which bit we're setting/unsetting //
This will put a 1 in the bit we're interested in turning on/off unsigned
char
nMask = 1 << nIndex; if
(tType) //
If we're setting a bit m_tType
|= nMask; //
Use bitwise-or to turn that bit on else
// if we're turning a bit off m_tType
&= ~nMask; //
bitwise-and the inverse mask to turn that bit off } bool
Get( int
nIndex) { //
Figure out which bit we're getting unsigned
char
nMask = 1 << nIndex; //
bitwise-and to get the value of the bit we're interested in //
Then implicit cast to boolean return
m_tType & nMask; } }; |
这图大家能看明白吗
最新推荐文章于 2022-10-10 12:00:02 发布