unsigned char Flags;
如果Flag在上电时具有默认值,即0?
,则在Flag中的每一步中存储什么值Flags |=0x04; //Flags = What will be stored here?
Flags &= 0xfe; //Flags = What will be stored here after bitwise operation?
这个if语句有什么作用?
if(Flags & 0x01)
{
//When will it enter into this conditional?
}
答案 0 :(得分:2)
如果Flags &= 0xfe
是if(Flags & 0x01)
之前的最后一次操作,则表达式将始终为false
,因此不会输入条件。
这是因为0xfe
掩码是11111110
2 ,0x01
掩码检查最低有效位,它总是为零。
答案 1 :(得分:1)
二进制值:
unsigned char Flags; // Flags = ????????;
Flags |=0x04; // Flags = ?????1??
Flags &= 0xfe; // Flags = ?????1?0
然后if(Flags & 0x01)
始终为false
,无论初始值如何。
因为?????1?0
& 00000001
为00000000