我需要用 C++ 编写代码来执行 16 位校验和的帮助。
这个想法是从用户(字符串)获取数据输入,将其转换为二进制形式,然后计算校验和并将其放入我的数据包中。我没有任何校验和类型规范……我认为异或 16 位是个好主意。我有以下课程包:
class packet
{
private:
string message;
unsigned int checksum; // this is a 16 bit checksum
unsigned int seqNum;
public:
packet(string str, unsigned int seq);
void setMessage(string str);
void setSeqNum(unsigned int num);
string getMessage();
int getLength();
unsigned int calculateChecksum();
int getChecksum();
bool getSeqNum();
};
鉴于上述情况,我必须在这里计算我的校验和:
packet::packet(string str, unsigned int seq)
{
this->message = str;
this->seqNum = seq;
// calculate checksum here
checksum = calculateChecksum(); //HOW TO CODE THIS FUNCTION?
}
请帮忙。我是 C++ 和 C 的新手。