1
我正在从加速度计读取字符格式的二进制数据,它由高位字节和低位字节组成。我从事C++工作很长时间,通常只使用更高层次的东西。 我有以下功能:将2个字符转换为ascii二进制代码
short char2short(char* hchar, char* lchar)
{
char temp[2];
temp[0] = *hchar;
temp[1] = *lchar;
我怎样可以得到的值转换为一个整数?据我所知,atoi的作用不同(例如“21”= 21)。 我可以只将char转换为int吗?但是它如何处理更高位和更低位? 在此先感谢您的帮助!
你中途停下来:'uint8_t'是8位参数的正确类型。 char(有符号或无符号)实际上可能不是。结果相同:使用'uint16_t'。请注意,您需要投射操作的结果,因为它是'int',而不是'short'或'uint16_t'。否则,你可能会得到一个截断警告(取决于'sizeof(int)')。 – Olaf 2015-06-03 02:47:45
我只是在他的问题中使用了这些类型..但是你对演员表是正确的。 – 2015-07-14 20:58:13
剧组是多余的;无论如何,'return'表达式被转换为返回类型 – 2015-07-15 01:35:10