我有关于位掩码中的问题,并用C位掩码和移位运算
uint32_t reg_val = 0xffffffff;
if(1 == ((reg_val & BIT12)>>12))
{
//DO SOMETHING.
}
移位运算符,其中BIT12是(1 < < 12)。 问题是右移12是否真的有必要。如果不是这样,因为如果BIT12设置在reg_val中,则表达式(reg_val & BIT12)的逻辑值为'1',如果BIT12在reg_val中清除,则逻辑值为'0' ?从可读性的角度来看,它也是推荐的编码习惯。
1 << 12 = 4096 :) –
@迈克尔:对XD我记得当时我想:“但它基本为零,所以2〜11的动力,不要搞砸:) :)“ – Ryan