Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用字符值作为有符号变量 我在ARDUNO IDE中编码,所以基本上是C++。我需要使用一个只有1字节的变量进行传输,但我需要对它进行签名_C++_Variables_Arduino - Fatal编程技术网

如何使用字符值作为有符号变量 我在ARDUNO IDE中编码,所以基本上是C++。我需要使用一个只有1字节的变量进行传输,但我需要对它进行签名

如何使用字符值作为有符号变量 我在ARDUNO IDE中编码,所以基本上是C++。我需要使用一个只有1字节的变量进行传输,但我需要对它进行签名,c++,variables,arduino,C++,Variables,Arduino,更具体地说,我需要发送一个int2byte,但这个int有两个值,一个是一个字节,因为我不关心符号,因为它总是正的,但另一个我需要它包含负数 我正在做这样的事情 turn = -120 int PromedioD_turn = PromedioD << 8 | (turn & 0b11111111); Serial.println("test"); Serial.println(PromedioD); Serial.println(turn & 0b11111111

更具体地说,我需要发送一个int2byte,但这个int有两个值,一个是一个字节,因为我不关心符号,因为它总是正的,但另一个我需要它包含负数

我正在做这样的事情

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

我不明白为什么或如何解决这个问题,我需要能够发送值,并在以后将其分解。

多亏@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));
int8\t或签名字符