我想檢查是否設定了 1024 位(128 位元組)中的任何一個。如果一切都清楚,那么我想做點什么。是否可以快速做到這一點,即一條指令,還是我必須遍歷我的位圖?
uj5u.com熱心網友回復:
正如我所理解的問題,您想檢查是否有任何位設定在您擁有的 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;
uj5u.com熱心網友回復:
檢查是否有任何資料非零。讓緩沖區成為您要檢查的資料,
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 ;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456848.html
