問題タブ [parity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2766 参照

scripting - 組み込みの冗長性を備えた逆増分バックアップ ソリューションはありますか (par2 など)?

主にバックアップ用にホーム サーバーを設定しています。ディスク容量を確保しながら、最も信頼性の高い方法でバックアップする必要がある約 90 GB の個人データがあります。特定の日付の任意のファイルに戻ることができるように、完全なファイル履歴が必要です。

データのサイズのため、毎週の完全バックアップはオプションではありません。代わりに、増分バックアップ ソリューションの方針に沿って検討しています。ただし、一連の増分バックアップで 1 つの破損が発生すると、一連のバックアップ全体が (ある時点を超えて) 回復不能になることを認識しています。したがって、単純な増分バックアップはオプションではありません。

私はこの問題に対する多くの解決策を研究してきました。まず、逆増分バックアップを使用して、ファイルの最新バージョンが失われる可能性を最小限に抑えます (古いファイルはそれほど重要ではありません)。次に、インクリメントとバックアップの両方を何らかの冗長性で保護したいと考えています。Par2 パリティ データは、この仕事に最適なようです。つまり、次の要件を満たすバックアップ ソリューションを探しています。

  • 逆増分 (ディスク容量を節約し、最新のバックアップを優先するため)
  • ファイル履歴 (リバース インクリメンタルを含むより広いカテゴリの一種)
  • 増分およびバックアップ データの Par2 パリティ データ
  • メタデータを保持する
  • 帯域幅を効率的に使用できます (帯域幅の節約。インクリメントごとにディレクトリ全体をコピーする必要はありません)。ほとんどの増分バックアップ ソリューションは、この方法で機能するはずです。

これにより、ファイルの整合性と比較的小さなバックアップ サイズが保証されると (私は信じています)。すでに多くのバックアップ ソリューションを見てきましたが、多くの問題があります。

  • Bacula - シンプルな通常の増分バックアップ
  • bup - インクリメンタルで、par2 を実装しますが、逆インクリメンタルではなく、メタデータを保持しません
  • duplicity - 増分、圧縮、および暗号化されていますが、逆増分ではありません
  • dar - インクリメンタルで par2 は簡単に追加できますが、逆インクリメンタルでファイル履歴なしではありませんか?
  • rdiff-backup - 必要なものにはほぼ完璧ですが、par2 のサポートはありません

これまでのところ、rdiff-backup が最善の妥協案のように思えますが、par2 はサポートしていません。par2 のサポートをバックアップの増分に簡単に追加できると思いますが、それらはバックアップごとに変更されるわけではありませんが、残りのファイルはどうですか? バックアップ内のすべてのファイルに対して par2 ファイルを再帰的に生成できますが、これは遅くて非効率的であり、バックアップ中の破損や古い par2 ファイルについて心配する必要があります。特に、変更されたファイルと破損したファイルの違いを見分けることができませんでした。また、そのようなエラーをチェックする方法や、バックアップ履歴にどのように影響するかについてもわかりません。誰もがより良い解決策を知っていますか? 問題へのより良いアプローチはありますか?

私の困難を読んでくれてありがとう。どんな助けでも大歓迎です。

0 投票する
1 に答える
1065 参照

php - PHPでパリティ桁を生成する

数字を含み、「-」で分割されたデータの行があります。sthは次のようになります。2012-421-020-120407ここで、phpコードのこの文字列の最後にパリティ桁(0または1)を生成します。 。しかし、私はそれをどのように行うのか分かりません。

前もって感謝します

0 投票する
1 に答える
3786 参照

networking - ブロックチェック文字(BCC)エラーバースト検出

免責事項:宿題ではありません!

問題

私は自分のネットワークコースのBCCエラー検出について読んでいて、いくつかのスライドの1つの特定の説明について少し混乱しています。

与えられた情報

次の説明があります。

  • n =行の長さ(この場合はn = 8)とします。
  • バースト内のすべてのビットがエラーである必要はなく、最初と最後だけであることを忘れないでください
  • BCCは(n + 1)ビットバースト(この場合は9ビットバースト)に対応します

質問

誰かが私にこれがどのように起こっているのか/それがどのように機能するのか説明してもらえますか?

問題の例

(過去の論文で見られます)たとえば、上記の図が与えられた場合、ブロック内で確実に検出できるバーストビットはいくつですか?あなたの答えを説明しなさい。

どんな助けでも大歓迎です!


編集:参照スライドを追加

このトピックに関する私の講義ノートの(唯一の)スライド

0 投票する
4 に答える
1454 参照

c - 8ビットのデータからCのパリティビットを取り除き、その後に1つのパリティビットを続けます

8ビットのデータとそれに続く1パリティビットのビットのバッファがあります。このパターンは繰り返されます。バッファは現在、オクテットの配列として格納されています。

例(pはパリティビット):

0001 0001 p000 0100 0p00 0001 00p011100..。

になる必要があります

0001 0001 0000 1000 0000 0100 011100..。

基本的に、データビットを取得するには、9ビットごとにストリップする必要があります。どうすればこれを達成できますか?

これは、いつかここで尋ねられた別の質問に関連しています。

これは32ビットマシン上にあるため、関連する質問の解決策が適用できない場合があります。可能な最大ビット数は45、つまり5データオクテットです。

これは私がこれまでに試したことです。「ブール」配列を作成し、オクテットのビットセットに基づいて配列にビットを追加しました。次に、配列の9つおきのインデックスを調べます。次に、残りの配列を1つのインデックス下に移動します。次に、データビットだけが残っています。これを行うにはもっと良い方法があるのではないかと思っていました。

0 投票する
2 に答える
1294 参照

c - プリプロセッサを使用したパリティビットの計算(refによる呼び出しを使用したパリティ機能スタイル)

コンパイル時にパリティを生成したいとします。パリティ計算にはリテラル定数が与えられ、適切なオプティマイザーを使用すると、それ自体が単一の定数に要約されます。次に、 Cプリプロセッサを使用した次のパリティ計算を見てください。

これにより、コンパイル時にパリティが計算されますが、大量の中間コードが生成され、式の16個のインスタンスに拡張されます。これは、u16たとえば任意の複雑な式にすることができます。問題は、Cプリプロセッサが中間式を評価できず、一般的な場合はテキストのみを展開することです(整数演算をその場で実行するように強制できますが、些細な場合、またはギガバイトの#definesを使用する場合のみ)。3ビットのパリティは、算術式によって一度に生成できることがわかりました([0..7]*3+1)/4。これにより、16ビットのパリティが次のマクロに削減されます。

u16これは6倍しか拡大しません。(拡張の数に関して)さらに安価な方法はありますか?たとえば、4,5などの直接式はありますか?ビットパリティ?(x*k+d)/m3ビットを超える範囲の許容可能な(オーバーフローしない)値k、d、mの形式の線形式の解を見つけることができませんでした。プリプロセッサのパリティ計算のためのより賢いショートカットを持っている人はいますか?

0 投票する
2 に答える
2518 参照

bit-manipulation - パリティ ビットをビット セットの前または後ろに追加しますか

パリティ ビットをビット セットの前または後ろに追加しますか? バイナリ値のセットのチェックとして機能するビット。セット内の 1 の数にパリティ ビットを加えた数が常に偶数になるように計算されます (場合によっては、常に奇数になる必要があります)。

0 投票する
1 に答える
362 参照

java - (質問)JavaのファイルでのXOR計算の問題

コードで XOR 操作を実行したいと思います。ただし、出力で奇妙な動作が発生します。結果が正しい場合もあれば、そうでない場合もあります。状況は次のとおりです。すでに 2 つの部分に分割されているファイルがあり、両方のファイル (ソース ファイル) で xor 操作を使用して 1 つのパリティ ファイルを作成しました。これで、3 つのファイルができました。次に、ソースファイルの1つを削除しました。欠落ファイルについて、パリティファイルと残りのソースファイルのxor演算で欠落ファイルを取得したい。ハッシュ関数を使用して、出力が正しいかどうかを確認しています。関数が 1 回だけ呼び出された場合は問題ありませんが、他のファイルで不足しているファイルを取得する操作を何度も行うと、関数が間違った結果を生成することがあります。彼らが間違った結果を生み出すとき、それは' 常に同じファイルを生成します。しかし、thread.sleep を 1 秒間置くと、1000 を超える操作があっても、常に正しい結果が生成されます。

コードのどの部分が壊れているかを特定するのを手伝ってくれませんか?

私の悪い英語をありがとう。

0 投票する
6 に答える
37535 参照

c# - 縦冗長検査 (LRC) を計算するにはどうすればよいですか?

ウィキペディアの例を試してみました: http://en.wikipedia.org/wiki/Longitudinal_redundancy_check

これは lrc (C#) のコードです:

結果は「EC」と言われましたが、「71」と表示されました。何が間違っていますか?

ありがとう。

0 投票する
1 に答える
755 参照

networking - パリティ エラー検出、特定のスキームがどのように機能しないかの 4 ビットの例

こんにちは、来週の中間試験に向けて少し修正を行っていますが、資料が見つからない、または答え方を理解できないという質問があります。

ここに画像の説明を入力

シングル エラー、ダブル エラー、またはトリプル エラーがどのように発生するかはわかりますが、4 ビット エラーがどのように見えるかはわかりません。

0 投票する
5 に答える
11930 参照

serial-port - マーク/スペース パリティを使用する場合とパリティなしを使用する場合の違いは何ですか?

パリティ ビットがまったく使用されていない状態をすべて定義する 3 種類のパリティ ビットを作成した目的は何ですか?

「パリティ ビットが存在するが使用されていない場合は、マーク パリティ (パリティ ビットが常に 1 の場合) またはスペース パリティ (ビットが常に 0 の場合) と呼ばれる場合があります」 -ウィキペディア