Bac*_*cko 5 c++ hex byte arduino println
我正在编程Arduino,我正在尝试Serial.print()十六进制格式的字节"我的方式"(继续阅读更多信息).
也就是说,通过使用以下代码
byte byte1 = 0xA2;
byte byte2 = 0x05;
byte byte3 = 0x00;
Serial.println(byte1, HEX);
Serial.println(byte2, HEX);
Serial.println(byte3, HEX);
Run Code Online (Sandbox Code Playgroud)
我在串行监视器中得到以下输出:
A2
5
0
Run Code Online (Sandbox Code Playgroud)
但是我想输出以下内容:
A2
05
00
Run Code Online (Sandbox Code Playgroud)
在的话,我想打印的"全"的十六进制值包括0S(05而不是0和00代替0).
我该怎么做?
简单的蛮力方法,就是写一个例程:
void p(char X) {
if (X < 16) {Serial.print("0");}
Serial.println(X, HEX);
}
Run Code Online (Sandbox Code Playgroud)
并在主要代码中:
p(byte1); // etc.
Run Code Online (Sandbox Code Playgroud)
小智 5
内存、代码和运行时间占用最少的将是经典的位播放
byte b;
Serial.print(b>>4, HEX);
Serial.print(b&0x0F,HEX);
Run Code Online (Sandbox Code Playgroud)
这在任何 8 位类型上都可以正常工作。对于任何其他面具也是第一行
Serial.print((b>>4)&0x0F, HEX);
Run Code Online (Sandbox Code Playgroud)