将 2 个字符转换为其 ascii 二进制代码
Converting 2 chars to its ascii binary code
我正在从加速度计读取字符格式的二进制数据,它由高位字节和低位字节组成。我使用 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));
}
您可能还想使用 unsigned short。这取决于你的期望。
我正在从加速度计读取字符格式的二进制数据,它由高位字节和低位字节组成。我使用 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));
}
您可能还想使用 unsigned short。这取决于你的期望。