我有一个源自bitse<16>binary_form (decimal_form)
的二进制代码。我想检查输出代码是0010********1001
还是1001********0010
还是1001********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";
}
我的支票不需要标有(*)的位。
答案 0 :(得分:0)
**让V []是一个足以容纳的无符号字符数组 **最多N位。设I是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