如何将char值用作签名变量

时间:2015-04-27 05:49:40

标签: c++ variables arduino

我在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);

我无法理解为什么或如何解决这个问题,我需要能够发送值并稍后将其分解。

1 个答案:

答案 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));