問題タブ [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 投票する
1 に答える
2380 参照

cuda - cudaでLarge Bit配列を作成するには?

私のアルゴリズムでは、配列の約 10000 要素を追跡する必要があります。そのため、レコードごとにブール値が必要です。char 配列を使用して 10000 個の配列を (0/1 として) 追跡すると、多くの時間がかかります。メモリー。

各ビットが対応する配列レコードを表すCudaで10000ビットのビット配列を作成できますか?

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

c# - C# バイトを BitArray に変換する

byteを に変換するために使用できる定義済みの関数はありますBitArrayか?

byte1 つの方法は、値のすべてのビットを検査してから、ビットごとの演算を実行することです。これよりも簡単な方法があるかどうか疑問に思っていました。

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

c++ - 連続するセット/クリアビットのビット配列を検索するための高速コード?

大きなビットマップ (数メガバイト) で連続する 0 または 1 のビットをすばやく検索するのに役立つかなり高速なコードはありますか?

「かなり速い」とは、マシンのワードサイズを利用して、恐ろしく遅いビットごとの分析を行う代わりに、ワード全体を一度に比較できることを意味します( で行うようなvector<bool>)。

たとえば、ボリュームのビットマップで空き領域を検索する場合 (デフラグなど) に非常に便利です。

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

java - バイトまたは整数をビットセットに変換します

私は次のものを持っています:

numBitビット配列に変換する非常に簡単な方法はありますか?またはさらに良いことに、intのバイト変換をバイパスnumしてビット配列に直接移行する方法はありますか?

ありがとう

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

2d - 各セルに格納されたデータがハード ドライブ上のサイズが 1 ビットである Java で 2D ビット配列を作成するにはどうすればよいですか?

私が実際に達成したいことは次のとおりです。1) テーブルまたはパックされた 2D ビット配列、2 列を作成します。行の長さは任意です。参照できるように列名を付けます。3) 次に、この配列の個々のビットを設定できます。 4) データがテーブルに格納されたら、テーブル オブジェクトをファイルに書き込みます。各セルのデータがハード ドライブで 1 ビットを占めるため、メモリ内のテーブル オブジェクトのサイズは気にしません。テーブル オブジェクトのサイズが 10 バイトで、テーブルに 16 ビットを格納したとします。したがって、ファイルに書き込むと合計 12 バイトになります。

プログラミング初心者ですので、分かりにくかったらすみません。あなたの知識に感謝します。

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

python - Pythonのファイルからビット配列を使用してヘッダー付きのバイナリファイルを読み取る

bitarray0.8.0を使用してバイナリファイルにビットを書き込むプログラムを作成しました。このバイナリファイルにヘッダーを追加して、ファイルの内容を説明したいと思います。

私の問題は、bitarrayのメソッド「fromfile」が必ず最初からファイルの読み取りを開始すると思うことです。読み取りプログラムがヘッダーを取得してから、バイナリ部分(bitarray tofile)のみを含む一時ファイルを書き換えるという回避策を講じることはできますが、あまり効率的ではありません。

これを適切に行う方法はありますか?

私のファイルは次のようになります。ここで、クリアテキストはヘッダーで、バイナリデータはビット配列情報です。

... {(0、0): '0'} {(0、0): '0'} {(0、0):'0'}�������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� ��������..。

編集:

回答を読んだ後、次のことを試しました。

長さは0で、「to01()」の出力は空です。ただし、ヘッダーの印刷は問題ありません。

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

c++ - ファイルのバイトを取得するには?

私が知りたいのは、ファイルのバイトを取得して、それらのバイトをビット配列に追加するために使用できるようにすることです。これを使用して、名前付きのファイルに書き込み、bytes.exeそれを起動できます。実行時に既存のファイルのバイトを読み取る方法を知っています。bitarray[]しかし、設計時にファイルのバイトをコピーして貼り付ける方法がわかりません。

目標は、実行時ににバイトを書き込んでbitarray[]からmyfile.exe、そのファイルを起動できるようにすることです。さまざまなファイルの種類に基づいて、使用するものがたくさんbitarray[]'sあるので、簡単な方法を探しています。

使用すべきある種の逆コンパイラはありますか? リソース スクリプトを調べただけですが、メインの .exe に依存関係を追加したくありません。

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

low-level - ほとんどのマシンが個々のビットをアドレス指定できないのはなぜですか?

私はビット配列について読んでいて、この質問が頭に浮かびました。ほとんどのマシンが個々のビットをアドレス指定できないのはなぜですか?それはDMAのせいで、各ビットのアドレスを保持するのに(メモリ/回路)コストがかかりすぎるからですか?

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

c# - BitArray スレッド セーフ

System.Collections.BitArrayクラスへの同時書き込みのスレッドセーフに関する情報を探しています。

具体的には、次の不自然な例を検討してください。

本能は、2 つのスレッドが bitarray の同じ基になる整数値に書き込もうとすると、同時にロックされていないアクセスが誤った結果を生成することを教えてくれますが、それをサポートする証拠を見つけることができず、実行時に問題に遭遇したことはありません。

これは安全な操作ですか?

そうでない場合、このコードが失敗したり、正しくない出力が生成されたりしないのはなぜですか?

アップデート

BitArrayさらにテストした結果、次のテストは、この例でa を使用することはスレッドセーフではないことを証明していると思います。

bool[]一方、a を使用することは安全なようです。

前述したように、その理由BitArrayは、配列内の 32 個の値が同じ整数値を共有しているためだと思います。

このロジックは正しいですか?

質問のために、コードに示されているスレッド以外のスレッドがコレクションにアクセスしていないと仮定してください。

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

python - bitarray.to01() が文字列の 0 と 1 だけを返さない (Python)

このライブラリを使用しbitarrayてビット変換を管理し、Python でバイナリ ファイルを作成しています。ファイルに書き込む前の bitarray.to01() の長さは です4807100171。何らかの理由で、ファイル ( ) からビットを取得し、b.fromfile(file)で 0 と 1 の文字列に変換した後、文字列 ( )to01()に 0 と 1 だけではなく、それを操作するときに意味がわかりません。 \x00、次のエラーが表示されます。

ファイルからの文字列のサイズ制限や、そのような問題があるのではないかと思います。もしそうなら、私はそれについて何も見つけていません...

編集:

問題を再現する方法は次のとおりです。

**編集#2:

ただし、 と を使用してマシンをチェックするplatform.architecture()sys.maxint、次のようになります。

したがって、これは約 2^63 です。2 ^ 32で切り捨てられるのはなぜですか? 私は4GBのRAMを持っています。2^32*1.16415e-10*8 (文字列に変換しているため) ~= 4GB が得られます... しかし、これが 64 ビット マシンであるという事実はどうでしょうか。