检查是否设置了 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++;
}
我想检查是否设置了 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++;
}