問題タブ [bitstuffing]
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.
encoding - ビット スタッフィングにはどのデータ構造を使用すればよいですか?
私が取り組んでいるプロジェクト、つまり単純なソフトウェア AFSK モデムにビットスタッフィングを実装しようとしています。簡略化されたプロトコルは次のようになります。
次に、受信したデータで予約されたシーケンスを見つける必要があるため0111 1110
、ヘッダーにもデータにも 6 つ1
の連続する が含まれていないことを確認する必要があります。これはビット スタッフィングによって行うことができます。たとえば、5 つ1
の s のシーケンスごとにゼロを挿入します。
に変換します
と
に変換します
これを効率的に実装したい場合は、1
s とs の配列を使用すべきではないと思います。ここでは、データ バイトをs とs0
に変換し、配列などに入力する必要がありますが、静的サイズのビットフィールドも適合しないようです。ビット スタッフィングにより、コンテンツの長さが可変になるためです。1
0
ビット スタッフィングをより効率的に行うには、どのデータ構造を使用できますか?
networking - ビットスタッフィングの例
私は読む例を調べています
ビットスタッフィング。次のビット文字列がネットワーク層からデータリンク層によって受信されたと仮定します:01110111101111101111110。ビットスタッフィングの結果の文字列は何ですか?追加された各ビットを太字にします。
答え:
この答えはどのように到達しますか?私の理解では、ビットスタッフィングは、フレームの最初と最後に特定のビットシーケンス(フラグ値と呼ばれる)を挿入することによって機能します。私が得られないのは:
- 旗の値は知らされていません!
- フレームの大きさはわかりませんが、旗を置く場所をどのようにして知ることができますか?
追加情報:このネットワークはイーサネットだと思います。
追加情報2:ビットフラグは01111110
正直なところ、私は理解していると思いますが、フラグ01111110を最後または最初に追加しなかったため、答えは不完全ではありませんか?そのビットのパターンがメッセージに表示されたとき、彼らはただ世話をしました。
他の例:ここでも彼らはそれをします。
java - Javaのビットスタッフィングについて
ビット スタッフィングを使用したデータ転送に関する割り当てのプログラミングを行っています。この割り当てでは、5 つの同一ビットが転送されると反転ビットがデータ ストリームに追加されます (つまり、5 "0" の後に "1" が追加されます。5 " 1"、"0" が追加されます)。元のテキスト ドキュメントから少し情報を得る方法と、それを新しいテキスト ドキュメントに書き込む方法を知っています。しかし、何らかの理由で、逆ビットの追加に関する私のプログラミング部分がうまくいかず、無限ループのようです...
ここに私のコードがあります
bit - ビット スタッフィングで 0 のビット数を計算するにはどうすればよいですか?
指定された文字列が01111
でテキストが0111101111
の場合、ビット スタッフィングに必要なビット数は?
assembly - アセンブリ内のビットを直接操作してビット スタッフィングを行う
私はアセンブリが初めてで、ビット スタッフィングをシミュレートするために、特定の int 値を形成するビットを直接操作する方法があるかどうか疑問に思っていました。
たとえば、詰め込みたいメッセージを表す 32 ビットの int がある場合、アセンブリでその数値の途中にビットを挿入する方法はありますか?
また、その int のサイズは 32 よりも大きくなり、レジスタが 32 ビットであるため、数値の最後のビットが削除されるので、それは望ましくありません。その心配はありません。
can-bus - CAN バスのビット スタッフィング
受信ノード (CAN バス) は、ビット スタッフィングがデータの実際のビット部分ではないことをどのように認識しますか?
以下の例を確認してください。どちらも有効なストリームですが、内容が異なります。
有効- ビット詰め込みストリーム (太字の詰め込みゼロ)
11111 0 10101
有効- ビット スタッフィングされていないストリーム
11111010101