嗨,我正在为传输解析器开发一个个人项目。
我希望能够以二进制数表示接收到的数据包,然后能够设置特定位。我对如何做第二部分有一个很好的想法,但我真的一开始就被困住了,我得到了一个使用 unsigned char 的建议,但我真的可以在那个变量中表示一个完整的数据包。
谢谢
anunsigned char array
可能是你需要的:你可以在这个结构中存储你想要的任何东西,并以任何你喜欢的方式访问它。
你也可以把这个容器放在一个更大的容器中:更大的容器会有指向每一层的开始和结束等的指针。
我可能会有一个简单的课程(无论如何都很简单):
class Packet
{
public:
Packet(unsigned int length);
Packet(void *data);
bool getBit(unsigned int bit);
void setBit(unsigned int bit,bool set);
private:
std::vector<unsigned char> bytes;
};
这只是开始,毫无疑问它会变得更加复杂,具体取决于您使用它的目的。您可能会考虑重载数组运算符,但这可能超出了“初学者级别”,现在最好忽略。