问题描述: if((i>>j)&0x01==0)k++什么意思啊? 1个回答 分类:综合 2014-09-17 问题解答: 我来补答 假设i=01101100,二进制,j=7,那么i>>j就是i右移7位,得到临时变量01,(注意这个时候i的值并没有改变)然后 临时变量01再和0x01取并运算,得1,K的值就加1,在这里0x01叫做掩码,和你见到的网络掩码是一个作用,就是把某个值里面为一的位提取出来.你贴上的那段代码extern void _stdcall Init(){unsigned char i;int j,k;int cTable[256];cTable[0]=8;for(i=1;i!=0;i++){k=0;for(j=0;j>j)&0x01==0) k++;}cTable[i]==k;}}就是记录每个字节中不为一的bit有多少位,最多保存256个字节的信息.例如:01101100 、00110011..两个字节,记在cTable[0],cTable[1]里是4、4,明白了么? 展开全文阅读