屏蔽码的作用

来源:互联网 发布:网络整合营销推广方案 编辑:程序博客网 时间:2024/06/06 08:29

Linux下可以通过屏蔽码判断一个4字节值得若干位为0还是1。个人的理解是屏蔽码可以减少比较的次数,不知道是否还有其它应用。


 unsigned int a,b;        a = 24;    b = 12;    int mask = a | b;    int count=0;        cout<<mask<<endl;    for(;mask;a=a>>1,b=b>>1,mask=mask>>1)    {        if(!(mask & 1))        {            ++count;            continue;        }        if(a & 1)            ++count;        if(b & 1)            ++count;    }    cout<<count<<endl;

该实例用于计算a和b中含有二进制1的个数。a对应的二进制位:11000。 b对应的二进制位:1100。

通常计算是对a和b分别进行遍历,那么需要比较的次数为 5 + 4 = 9次,而应用屏蔽码只需要比较6次,如果a和b数值都比较大,或者同时比较数值较多时(当然最好是有很多位为0),使用屏蔽码会更高效。

0 0
原创粉丝点击