我知道这可能是错误的部分,但我的问题是微控制器编程的具体(AVR主要)!
我正在使用Uart在两个AVR atmega8之间发送字节,其中字节中的每个位代表一些东西,并且在发送的每个字节中只有一个位是1
因此,如果我想要检查,比如说,接收字节中的第5位,则按如下方式写入:
short byte=UDR;
if(byte&(1<<5))
{
// do stuff for bit 5
}
那么它总是工作得很好。
但是,如果我这样写它:
short byte=UDR;
if(byte==0b00100000)
OR
short byte=UDR;
if(byte==0x20)