我有一个byte
我正在使用的位标志。我知道在任何给定时间都设置了一个且只有一个位。byte
前任:unsigned char b = 0x20; //(00100000) 6th most bit set
我目前使用以下循环来确定设置了哪个位:
int getSetBitLocation(unsigned char b) {
int i=0;
while( !((b >> i++) & 0x01) ) { ; }
return i;
}
如何最有效地确定设置位的位置?我可以在没有迭代的情况下做到这一点吗?