3

16 ビット チェックサムを実行するために C++ でコードを作成する際に助けが必要です。

アイデアは、ユーザーからデータ入力 (文字列) を取得し、それをバイナリ形式に変換してから、チェックサムを計算してデータ パケットに入れることです。チェックサム タイプの指定はありません... 16 ビットを XOR するのが良い考えだと思いました。次のクラス パケットが指定されています。

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が初めてです。

4

2 に答える 2