注册 登录
编程论坛 C++教室

bitset中的一个函数求助???所指地方的意思

淘气猪猪ke 发布于 2012-12-07 17:04, 306 次点击
bitset中的一个函数
求助???所指地方的意思

 size_t count()const
    {
        size_t _V = 0;
        for(int _I=_Nw;0<=_I;--_I)
        {
            for(_Ty _X=_A[_I];_X!=0;_X>>=4)
            {
                _V += "\0\1\1\2\1\2\2\3\1\2\2\3\2\3\3\4"[_X&0xF];  //// ????
            }
        }
        return _V;
    }
2 回复
#2
rjsp2012-12-08 08:42
这不是很浅显嘛,左列是4bits的二进制形式,右列显示左列中1的位数
0000 0
0001 1
0010 1
0011 2
0100 1
0101 2
0110 2
0111 3
1000 1
1001 2
1010 2
1011 3
1100 2
1101 3
1110 3
1111 4
#3
lz10919149992012-12-08 16:05
_V += "\0\1\1\2\1\2\2\3\1\2\2\3\2\3\3\4"[_X&0xF];
和这个一样:
_V += *("\0\1\1\2\1\2\2\3\1\2\2\3\2\3\3\4" + _X&0xF);
这个函数的功能就是把_A数组中的每个值拆分出所有的4位二进制,然后加起来。
1