对SimpleBitVector32结构的理解

前段时间通过Reflector查看.net框架类,偶尔发现了SimpleBitVector32结构,在blog里也发现了对它的解释,
不过我感觉不太清晰,所以有必要再说明一下.其定义代码如下:

 1       internal   struct  SimpleBitVector32
 2      {
 3           private   int  data;
 4           internal  SimpleBitVector32( int  data)
 5          {
 6               this .data  =  data;
 7          }
 8           internal   bool   this [ int  bit]
 9          {
10               get
11              {
12                   return  (( this .data  &  bit)  ==  bit);
13              }
14               set
15              {
16                   if  (value)
17                  {
18                       this .data  |=  bit;
19                  }
20                   else
21                  {
22                       this .data  &=   ~ bit;
23                  }
24              }
25 
26          }
27           internal   int  Data 
28          {  get
29            {
30                 return   this .data;
31            } 
32          }
33      }

有人要问了,它有什么作用呢?说白了,它相当于一个逻辑数据,bool []长度为32(int 的长度),使用情形如下
 1  private  SimpleBitVector32 sb=new SimpleBitVector32(0);
 2  sb[ 0x80 ] = true ;
 3  sb[ 0x40 ] = false ;
 4  if  (sb[ 0x40 ])
 5  {
 6     Console.Write( " 第7位为1 " );
 7  }
 8  else
 9  {
10     Console.Write( " 第7位为0 " );
11  }
12 

第1行代码结构中的data用二进制表示为0000……0,32位都为0
其中第3行代码把第7位置为0,那么 sb[ 0x40 ]肯定为false,
很明显输出:第7位为0

转载于:https://www.cnblogs.com/stillman/archive/2006/06/03/416422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值