0

嗨,我正在为传输解析器开发一个个人项目。

我希望能够以二进制数表示接收到的数据包,然后能够设置特定位。我对如何做第二部分有一个很好的想法,但我真的一开始就被困住了,我得到了一个使用 unsigned char 的建议,但我真的可以在那个变量中表示一个完整的数据包。

谢谢

4

2 回答 2

1

anunsigned char array可能是你需要的:你可以在这个结构中存储你想要的任何东西,并以任何你喜欢的方式访问它。

你也可以把这个容器放在一个更大的容器中:更大的容器会有指向每一层的开始和结束等的指针。

于 2010-01-29T15:59:12.600 回答
0

我可能会有一个简单的课程(无论如何都很简单):

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;
};

这只是开始,毫无疑问它会变得更加复杂,具体取决于您使用它的目的。您可能会考虑重载数组运算符,但这可能超出了“初学者级别”,现在最好忽略。

于 2010-01-29T16:06:55.733 回答