C ++中的Python Struct.Unpack(Bitshift?)

时间:2015-07-20 17:38:54

标签: python c++ ros

data = struct.unpack('!10H'%length, buf[:20])

现在假设C ++,其中buf是std :: string。 我可以写一下:

uint8_t f1 = (buf[0] << 8) | buf[1];
uint8_t f2 = (buf[2] << 8) | buf[3];

? 我必须将python ROS-IMU驱动程序翻译成ROS-C ++并且必须处理很多struct unpacks。我读到了有关翻译代码的不同方法,有些人说声明了相应的结构并执行了memcpy或reinterprete_cast,其他人则说使用了bitshift。那是我到目前为止编译的内容。这会做我想要的吗?或者如何将std :: string或uint8_t数组转换为相应的值?

在此解包中,dB之前的百分号(%)是什么意思?在python手册中,此参数未在“格式参数”下列出。

data = struct.unpack('!%dB'%length, buf[:-1])

0 个答案:

没有答案