将2个字符转换为其ascii二进制代码

Converting 2 chars to its ascii binary code

本文关键字:ascii 二进制 代码 2个 字符 转换      更新时间:2023-10-16

我正在从加速度计读取字符格式的二进制数据,它由高位字节和低位字节组成。我已经很久没有使用C++了,而且通常只使用更高级别的东西。我有以下功能:

short char2short(char* hchar, char* lchar)
{
    char temp[2];
    temp[0] = *hchar;
    temp[1] = *lchar;

如何将这些值转换为整数?据我所知,atoi的工作方式不同(例如"21"=21)。我可以把char转换成int吗?但是它是如何与高位和低位一起工作的呢?提前感谢您的帮助!

您应该将字节存储为无符号,以避免移位符号位的问题。

short char2short(unsigned char hchar, unsigned char lchar)
{
    return static_cast<short>(lchar | (hchar << 8));
}   

您可能还希望使用无符号短字符。这取决于你的期望。