問題タブ [bitarray]

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 投票する
3 に答える
7153 参照

c# - BinaryReader-単一の「ビット」を読み取る?

ケース:
再びNICを介してパケットをキャプチャしようとして、
可変ビット数のキャプチャに使用する2つの拡張機能を開発しました

問題 :

シングルビットを読み込もうとしているのですが、MSDNのドキュメントを参照する
と、ストリームの位置が1ビットではなく1バイト進みます。

現在のストリームからブール値を読み取り、ストリームの現在の位置を1バイト進めます。

質問:
本当に「のみ」1ビットをキャプチャしてストリーム位置を1ビット進めることはできますか?
解決策やアイデアを教えてください:)

よろしく、

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

c# - BitArray から整数への問題

2番目の戻り値が3ではなく12である理由を誰か説明してもらえますか?? お願いします... ありがとうございます。

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

python - Windows上のPython 2.7のbitarrayパッケージ?

32 ビット Windows で Python 2.7 用の簡単にインストールできるバージョンの bitarray が必要です。このプロジェクトでは py2exe は使用できないため、簡単にインストールできる exe / msi / Egg が必要です。これを作成した人はいますか? Googleは何も表示しません。

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

c# - (ほとんど)プリミティブ値で構成される構造体を一意に識別する32ビットハッシュコードをすばやく作成する

編集:64ビットまたは128ビットも機能します。私の脳は、それで十分だと思って、何らかの理由で32ビットにジャンプしました。

主に数値(int、decimal)と、それぞれ12文字を超えることのない3つの文字列で構成される構造体があります。ハッシュコードとして機能する整数値を作成し、すばやく作成しようとしています。一部の数値もnull許容です。

BitVector32またはBitArrayは、この取り組みで使用するのに便利なエンティティのようですが、このタスクでそれらを自分の意志に合わせて曲げる方法がわかりません。私の構造には、3つの文字列、12の小数(そのうち7つはnull許容)、および4つのintが含まれています。

私のユースケースを単純化するために、次の構造体があるとしましょう。

各値の数値識別子を取得できることはわかっています。MyDecimalとMyIntは、数値の観点からはもちろんユニークです。また、文字列にはGetHashCode()関数があり、通常は一意の値を返します。

では、それぞれに数値の識別子を使用して、この構造を一意に識別するハッシュコードを生成することは可能ですか?たとえば、同じ値を含む2つの異なるFooを比較し、毎回同じハッシュコードを取得できます(アプリのドメイン、アプリの再起動、時刻、木星の衛星の配置などに関係なく)。

ハッシュはまばらであるため、ユースケースからの衝突は予想されません。

何か案は?最初に実行したときは、すべてを文字列表現に変換して連結し、組み込みのGetHashCode()を使用しましたが、それはひどく...非効率的です。

編集:もう少し背景情報。構造データはWebクライアントに配信されており、クライアントは含まれている値の多くの計算、文字列の構成などを実行してページを再レンダリングします。前述の19のフィールド構造は、単一の情報ユニットを表しており、各ページには多くのユニットが含まれる可能性があります。レンダリングされた結果のクライアント側のキャッシュを実行したいので、サーバーから同じハッシュ識別子が表示された場合、クライアント側で再計算せずにユニットをすばやく再レンダリングできます。JavaScriptの数値はすべて64ビットなので、32ビットの制約は人為的で制限的なものだと思います。64ビットは機能しますが、サーバー上で2つの64ビット値に分割できれば128ビットでも機能すると思います。

0 投票する
3 に答える
1932 参照

c++ - 動的メモリ割り当てが 600MB を超えると失敗するのはなぜですか?

3 次元の char 配列を使用してブルーム フィルター (ビット テーブル) を実装しましたが、メモリを割り当てることができなくなり、 bad_allocメッセージが表示されるまではうまく機能します。600MB を割り当てた後、次の拡張リクエストでこのエラーが発生します。

ブルーム フィルター (配列) は、8 ~ 10 GB の大きさになると予想されます。

ビットテーブルを割り当てる(展開する)ために使用したコードは次のとおりです。

配列の最大許容サイズはいくらですか。これが問題でない場合は、どうすればよいですか。

編集: 32 ビット プラットフォームを使用して開発されています。

8 GB RAM を搭載した 64 ビット プラットフォーム (サーバー) で実行されます。

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

c++ - このブルームフィルターの実装で何が間違っていますか?

セグメント化されたブルーム フィルター用のビット テーブルがあります。ここでは、すべての列が単一のハッシュ関数によって管理されています。

それぞれがCOLUMNS*8ビットの設定とチェックを処理する、 ROWS個のハッシュ関数があります。

要素はハッシュされ、bit_indexbitは次のように計算されます。

現在、挿入は次のように行われます

そしてクエリは

私の問題は、ブルーム フィルターがすぐにいっぱいになってしまうことです。文字の個々のビットを正しく使用していないと思われます。たとえば、次のようなものが必要だと思います。

bit_table_[i][bit_index][bit]|=bit_mask[bit];

挿入用ですが、bit_tableは 2 次元配列として宣言されているため、これを行うことはできません。

char 配列の個々のビットを利用するにはどうすればよいですか?

英語は私の第二言語なので、私の質問を理解するのに苦労するかもしれません. リクエストがあれば、私のポイントをさらに説明していただければ幸いです。

編集: compute_hash(i,set_elemnt)は、定義済みのソルト値を使用して、挿入またはクエリされる要素のハッシュ値を計算します。

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

c# - C# の Bitvector32 と Bitarray

O(1) 時間で動作する Bitvector32 のビット演算子があるかどうかを知りたかったのです。私は現在、大きなサイズの BitArray を使用しており、O(bitarray のサイズ) で動作する Bitwise And、Or、および Not を使用しています。

これについてインターネットで検索しましたが、答えが見つかりませんでした。ここの人々が助けてくれることを願っています!

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

ruby - Ruby: bitarray を整数に変換する

[0,0,1,0].to_i = 2またはなどのビット配列を変換しようとしています[0,1,0,1].to_i = 5

Rubyでこれを行うにはどのような方法がありますか?

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

c# - バイトへのコピーが機能するように BitArray を埋める方法

スラッシュ表記 (24、30 など) をサブネット マスクに変換するこの (宿題ではない) 演習を検討してください。

a をにコピーするBitArraybyte[]、内部の順序付けによってBitArray誤った出力が発生します。

たとえば、 の入力ではnumberOfSetBits=24ToString()が返さ255.255.255.0れます (ビットが対称であるため、これが機能します)。ただし、 を入力すると、予想される ではなく が30返されます。はい、それが BitArray が子を処理する方法であることを認識しています(この問題については古い議論がありますが、残念ながら解決策はなく、1 つの順序付けが優れている理由についての終わりのない議論です)。255.255.255.63255.255.255.252

しかし、神への愛のために、このコードを(=63)1111 1100にマングルするのではなく、それが何であるかを処理する (=252) ようにするにはどうすればよいでしょうか? 0011 1111そもそもビットを追加する順序を変更する必要があると思いますが、うまくいきません。

ありがとうございました。

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

python - Pythonでの小さなセットのパフォーマンス

Pythonで特定の範囲(たとえば0から10)の整数の小さなセットを表す最も効率的な方法を探しています。この場合、効率とは、(ソートされていないリストからの)高速な構築、高速なクエリ(各セットでのいくつかのクエリ)、およびソートされたバージョンの適度に高速な構築(おそらく10セットに1回程度)を意味します。先験的に、候補者はPythonの組み込みセットタイプ(高速クエリ)、ソートされた配列(おそらく構築が高速ですか?)、またはビット配列(Cにいる場合はすべて高速です...)を使用していますが、Pythonがその効率的(?))。どれを選ぶべきかアドバイスはありますか?

ありがとう。