我在arduino IDE中编码,所以基本上是C ++。我需要使用一个只有1个字节的变量用于传输目的,但我需要对其进行签名。
更具体地说,我需要发送一个int
(2byte),但是这个int中有2个值,一个是一个字节,因为我不关心这个符号,因为它总是正的,但另一个我需要的它包括负片。
我正在做这样的事情。
turn = -120
int PromedioD_turn = PromedioD << 8 | (turn & 0b11111111);
Serial.println("test");
Serial.println(PromedioD);
Serial.println(turn & 0b11111111,DEC); //this is printing as 136
Serial.println(PromedioD_turn);
我无法理解为什么或如何解决这个问题,我需要能够发送值并稍后将其分解。
答案 0 :(得分:0)
感谢@bolov使用int8_t我可以将它转换为有符号值
int PromedioD_turn = PromedioD << 8 | turn & 0b11111111;
Serial.println("test");
Serial.println(PromedioD);
Serial.println(turn);
Serial.println(PromedioD_turn);
Serial.println(int8_t(PromedioD_turn &0b11111111));