2016-04-04 11 views
-1

まずは、これが適切な場所であるかどうかはわかりませんが、実際にはどんなヘルプも使用できます。その私に1a6aの答えを与えることになって巡回冗長検査の方法

だから私は、文字列 abcdefghijklmnopqrstuvwxyz12345-ABCDEFGHIJKLMNOPQRSTUVWXYZ12345aを含むASCIIファイルを与えていると私は、(1010000001010011)のCRC-15多項式を実行することになっていたの。私はちょうど彼がこれを得た方法について私の頭を包むことを試みている。私はこのサイトhttps://www.ghsi.de/CRC/を使って正しく理解しているかどうかを確認していますが、私は346aを得ています。私の理解では、文字列の各文字には特定の16進数の値が含まれているので、電卓を使用してメッセージを16進数で書き換えて61 62 63 64 65 66 67 68 69 6a...のように見えるようにします。

ここで何かお手伝いしますか?

+0

これは宿題ですか?また、これまでに何を試しましたか? –

+0

@KenClementはい。これは私がしなければならないプログラムのちょうど始まりのステップです、私はちょうど彼が '1a6a'を手に入れた方法を理解しようとしています。ペーパーアサインメントを行ったことがありますが、CRCの理解を深めるためにはかなり低い値です。メッセージを受けてバイナリに変換し、多項式でXORを実行する必要があり、残りは私たちの答えになるはずです。メッセージが紙のために大きすぎるので、私は実際に試してみる余地がありません。 – RiGid

+0

www.ghsi.de/CRC/電卓は私のために働いています。(https://www.ghsi.de/CRC/index.php?Polynom=1010000001010011&Message=61+62+63+64+65+66+67 + 68 + 69 + 6A + 6B + 6C + 6D + 6E + 6F + 70 + 71 + 72 + 73 + 74 + 75 + 76 + 77 + 78 + 79 + 7A + 31 + 32 + 33 + 34 + 35 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 4A + 4B + 4C + 4D + 4E + 4F + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 5A + 31 + 32 + 33 + 34 + 35 + 61 + 0A)。注意:文字列の文字は16進値を「含む」わけではなく、16進数値はcharを符号化する方法(ASCII)です。 – agc

答えて

1

これは宿題であるため、私は関連する提案を行いますが、コードはありません。これは学生の仕事です。

  1. 文字列値を一度に1バイトずつ、各バイト処理ごとに1度に1つずつ処理します。 0x80で始まるバイトストリングからビットを解析し、0x01まで右シフトすることができます。これにより、現在のバイトとビット単位でANDできるマスクが生成されます。 (?:operationまたはif文を使用して、値を1または0に曖昧させないでください)。

  2. ハードウェア回路がそのビットで行うことをシミュレートします。これは、単純なビット単位のAND、 XOR、シフトなど

  3. 入力として、多項式を含むCRC状態を受け入れ、単純な関数を書くことは可能である。

    計算について移動する複数の方法があります

、このビーイングこれらのうちの1つだけです。私は説明したようにこの計算を実行するいくつかの行の機能を持っていますが、最初に述べたとおりです、宿題は学生の仕事です。

あなたに幸運。