問題タブ [boolean-operations]
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.
binary - 最下位ビットをビット演算に置き換えます
バイトの最下位ビットを提供されたビットに置き換える最適な方法は何ですか?
最後のビットをチェックして比較する方法は知っていますが(たとえば、posix ffs()関数を使用)、ビットの置換が0か1かをチェックせずに、より優れたパフォーマンスのソリューションがあるかどうかを知りたいです。
この例はPythonで擬似コードとして記述されていますが、動作するアルゴリズムをCで実装します。
明らかに、演算子は一連の操作にすることができますが、私は最適な(最速の)方法を探しています。
c# - (int 1,2,4,8、...)オプションがtrueまたはfalseかどうかを確認するためのパターンまたはメソッドがC#にありますか
メソッドにオプションを渡すために列挙型または整数を書くのが好きです。(int 1,2,4,8、...)オプションがtrueまたはfalseかどうかを確認するためのパターンまたはメソッドがC#にありますか。二変数関数で簡単にできるはずだと思います。
編集
このように作成できるオプションの数は制限されていますか?
c++ - オペレーターのパフォーマンス| 対オペレーター+
|の間に大きな違いはありますか?+ 長期的にはコードのパフォーマンスに影響を与えますか? それとも両方ともO(1)ですか? 私が取り組んでいるコードは次のようなものです:
コードは何度も使用するので、できるだけ高速化したいと考えています。
c# - 条件付き XOR ?
XOR
C# に条件演算子がないのはなぜですか?
例:
c# - C#にXNOR(論理二条件)演算子はありますか?
私はC#が初めてで、この真理値表を提供するXNOR演算子を見つけることができませんでした:
これには特定の演算子がありますか?または、!(A^B) を使用する必要がありますか?
arrays - ブールクエリに一致する大きなint配列のサブセットを見つけるアルゴリズム
各値にNビット以下が設定されているM32ビットintの大きな配列があるとします。ここで、クエリTarget AND Value == Targetに一致するサブセット、つまり、ターゲットビットが配列の値に設定されているように見える値を返します。
ブルートフォースは簡単です。配列を反復処理して、target&value==targetを抽出するだけです。Mが非常に大きくなると、これは非常に遅くなります。配列を検索に最適なデータ構造に変換する方法を知っている人はいますか?
1つの方法は、各ビットの配列または値を格納し(したがって、32ビット配列の場合はこれらのうち32個が必要です)、ターゲット値の各ビットに一致する値のみを検索することです。これは、Nが32に近づくか、ターゲットにNビットが設定されていない限り、少し役立ちます。私が探しているのは本質的に部分一致であるため、ハッシュや並べ替えは役に立たないようです。
正確に正しい結果が必要です。これは、並列ハードウェア(GPUやSIMDの使用など)にアクセスせずに機能する必要があります。
私はC++を使用しますが、アルゴリズムやアイデアへのいくつかのポインターで問題ありません。最も可能性の高いケースは、M=100000およびN=8であり、頻繁に呼び出されます。
繰り返しになりますが、完全に一致するのではなく、部分的に一致する必要があります(item = 011000 match target = 001000など)。Mアイテムは事前にわかっていますが、ターゲットの可能な値は何でもかまいません。
私はついにブルートフォースに固執することにしました。80,000アイテムの場合、他に何もする価値はありません。データセットのサイズが8億に近い場合は、それだけの価値があると思います。
c++ - C++ の "|=" 演算子
C++ の "|=" について質問があります。この演算子がどのように機能するか、たとえば次のようになります。
上記で呼び出された関数は、パラメーター sig が関数で処理される場合は「true」を返し、そうでない場合は「false」を返します。
sig は毎回 1 つの関数でしか処理できませんが、" |=
" はどのように機能しますか?
c# - C# で厄介なキャスト
私は、C# でかなり低レベルのアプリケーションを作成しており、多くのバイト ショートとビット操作を使用しています。私が気づいたことの 1 つは、C# がビット操作を行い、int 以外にブール演算子を使用することを好まないことです。これにより、コード全体で何百ものキャストが発生しました。「タイプ 'int' を 'ushort' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)」などのエラー
これにより、どこでもキャストを使用する必要があります。
これはせいぜい警告です。b1 と b2 が ushort 型の場合でも、エラーになります。加算などの基本的な演算でも同じエラーが発生します。
とにかくこれについてはありますか、それとも、整数以外のものを使用する場合、またはこれが問題ではない場合に C++ を使用する場合、キャストは C# の生活の一部にすぎないという事実に自分自身を辞任する必要がありますか?