私はもっと長い機能を作ろうとしましたが、それは非常に奇妙な動作をしました。私は問題を切り分けようとしましたが、バグのある部分を見つけることができました。
このプログラムはArduino用に作成されましたが、この現象はおそらく他の環境でも発生します。たくさん検索してみましたが、解決策が見つかりません。
だから、私のバグのある部分:
これらの2つのコードで同じ結果が得られないのはなぜですか?
余分な変数なしで「コード1」のような同じ操作
で1行の関数を作成するにはどうすればよいですか?
結果:
- コード1:0b00101100
- コード2:0b01101100
ソースコード:
コード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(){
}
それは与える:0b00101100
コード2:(不正な操作ですが1行)
#include <binary.h>
const byte value=B00110110;
byte result;
void setup(){
Serial.begin(115200);
result = ((value << 3) >> 2);
Serial.println(result,BIN);
}
void loop(){
}
それは与える:0b01101100