0

与えられたジェネレータ多項式から逆多項式を計算するためのjavascriptコードを書いていますが、いくつかのCRCメソッド(CRC-8、CRC-16、CRC-CCITT、CRC-32、CRC-32C)でうまく機能するエラーがあるようです。しかし、それらすべてのためではありません..私が間違っているところを指摘してください。

<input type="text" name="poly" id="poly" onkeyup="getRevPoly()">
<input type="text" name="rpoly" id="rpoly" disabled>

<script type="text/javascript">
function getRevPoly() {
  var poly = document.getElementById('poly').value;
  var bin = convertBase(poly, 16, 2);
  bin = pad(bin, (poly.length));
  bin = bin.split('').reverse().join('');
  var hex2 = convertBase(bin, 2, 16);
  document.getElementById('rpoly').value = hex2.toUpperCase();
}
function convertBase(num, baseA, baseB) {
          return parseInt(num, baseA).toString(baseB);
}

function pad(num, size) {
      var s = num;
      while (s.length < (size * 4)) s = "0" + s;
      return s;
}
</script>
4

1 に答える 1

0

このコードは、長さが 4 ビットの倍数の CRC に対してのみ機能します。したがって、質問へのコメントで(最終的に)言及したCRC-5では機能しません。実際、上位項のない多項式の 16 進表現を取り、魔法のようにビット数を推測できるコードはありません。CRC のビット数である別の入力が必要です。

于 2013-03-17T20:51:24.013 に答える