检查是否设置了 N(large) 位

Check if N(large) bits are set

我想检查是否设置了 1024 位(128 字节)中的任何一个。如果一切都清楚了,那么我想做点什么。是否可以快速执行此操作,即一条指令,还是我必须循环遍历位图?

正如我所理解的问题,你想检查你拥有的 1024 位中是否设置了任何一位。

假设您使用的是 64 位计算机。 将位存储为 unit64_t 类型的数组,即 8 bytes.

所以你有这种数组。

uint64_t bits[16] = {0}; // 1024 bits

并检查您的钻头状况

for(int i = 0, j=0; i < 16; i++){
    if(bits[i]) {
        return FAIL_CONDITION;
    }
}
return SUCCESS_CONDITION;

检查是否有任何数据非零。 让缓冲区成为您要检查的数据,

int n=128;
unsigned char *buffer = &data;
for(int i=0 ;i<n ; i++) {
           if((*data)) {  //If data is non zero any of the bit in the data is 
                          // set, so quit from iterating.
                break;
           } 
           data++;
}