簡體   English   中英

檢查一個字節的值16位BITSET

[英]Check the value of a byte In 16 bits BITSET

我有一個源自bitse<16>binary_form (decimal_form)的二進制代碼。 我想檢查輸出代碼是0010********1001還是1001********00101001********0001 所以我想檢查前半個字節的值和后半個字節的值。 我使用了if &if else語句,但是我正在尋找一種更專業的方法來執行此檢查,而不是檢查所有內容。

這是我嘗試的:

if(binary_form[0]==1&& binary_form[1]==0&& binary_form[2]==0&& binary_form[3]==1 &&binary_form[12]==0 &&binary_form[13]==1 &&binary_form[14]==0  &&binary_form[15]==0)
{
    cout<<"Jhon\n";
}
else if(binary_form[0]==0 &&binary_form[1]==1 &&binary_form[2]==0 &&binary_form[3]==0 &&binary_form[12]==1 &&binary_form[13]==0 &&binary_form[14]==0&& binary_form[15]==1)
{
    cout<<"Remon\n";
}
else if(binary_form[0]==1 &&binary_form[1]==0 &&binary_form[2]==0 && binary_form[3]==0 &&binary_form[12]==1 &&binary_form[13]==0 &&binary_form[14]==0 && binary_form[15]==1)
{
    cout<<"Soliman\n";
}

標有(*)的位對於我的檢查不是必需的。

**令V []為一個無符號字符數組,足以容納**最多N位。 令我為0到N之間的整數。0<= I

#define SETBIT(V,I)      V[I>>3] |= (1<<(I&7))
#define CLEARBIT(V,I)    V[I>>3] &= ~(1<<(I&7))
#define TESTBIT(V,I)     (V[I>>3]&(1<<(I&7)))!=0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM