我试图做一个更长的功能,但它的行为非常奇怪.我试图找出问题所在,我已经找到了这个有缺陷的部分.
这个程序是为Arduino制作的,但这种现象可能出现在其他环境中.我试图进行大量搜索,但我找不到解决方案.
为什么这两个代码不能给出相同的结果?
如何在没有额外变量的情况下构建单行函数,
但是像"代码1"一样操作?
结果:
源代码:
代码1 :(正确操作,但不是一行)
#include <binary.h>
const byte value=B00110110;
byte buffer,result;
void setup(){
Serial.begin(115200);
buffer = (value << 3);
result = (buffer >> 2);
Serial.println(result,BIN);
}
void loop(){
}
Run Code Online (Sandbox Code Playgroud)
它给出:0b00101100
代码2 :(不正确的操作,但一行)
#include <binary.h>
const byte value=B00110110;
byte result;
void setup(){
Serial.begin(115200);
result = ((value << 3) >> 2);
Serial.println(result,BIN);
}
void loop(){
}
Run Code Online (Sandbox Code Playgroud)
它给出:0b01101100