我有關於位掩碼中的問題,並用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