問題タブ [bitwise-xor]
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.
arrays - 整数配列のサブセットが存在するかどうかを見つける効率的なアルゴリズム、そのすべての要素の xor が指定された値ですか?
正の整数配列 {1,5,8,2,10} と特定の値 7 があります。要素の XOR が値 7 になるような配列のサブセットが存在するかどうかを調べる必要があります。この場合、 5 xor 2 は 7 であるため、サブセットは {5,2} です。単純な解決策の 1 つは、すべてのサブセットを見つけて、解決策が存在するかどうかを確認することです。単純なアルゴリズムよりも優れたアルゴリズムが必要です。注:-ソリューションが存在するかどうかを確認するだけで済みます。サブセットを見つける必要はありません。
ruby - Ruby XOR ビット単位操作暗号の演習
メッセージを ASCII 16 進値の文字列に変換して、元に戻そうとしています。ただし、^ ビットごとの XOR 演算子で多くの問題が発生しています。過去 4 時間、XOR とビットごとの操作に関する stackoverflow の同様の質問を検索してきましたが、この問題を解決した提案はまだありません。
次のテストを作成したRakeTestファイルがあります。
私は手作業で (そしてオンラインの 16 進コンバーターで検証して)、正しい ASCII 16 進数の結果が上記のものであることを確認しました。ここに私の復号化モジュールがあります:
2 つの別々のレーキ テスト機能で、to_hex_array
とto_str_from_hex_array
が正しく機能していることを確認しました。上記のレーキ テストを実行すると、'NoMethodError: undefined method '^' for "48":String
. 48 は最初の 16 進数値であり、明らかに文字列はビットごとの演算を実行できませんが、「^」が正しく動作するように値を変換するために見つけたすべての方法を試しました。
私が得ることができる最も近い (エラーはスローされません) は、ループ内の操作を に変更することですmsg[i].hex ^ key[i].hex
が、ASCII dec 値を出力します。誰か助けてくれますか?
編集:以下の提案のおかげで、次のテストを正常に実行できます。
興味のある方のために、成功した Decrypt モジュールを次に示します。
c++ - 2 つの整数の XOR が範囲外になることはありますか?
私は配列内の孤独な整数を見つけるためのアルゴリズムを研究していましたが、実装は次のとおりです。
結果は5
です。
私の質問は-おそらく、この操作のために整数(XOR
操作によって生成される)が大きすぎるということです:
int
これは、この場合のデータ型では表現できない潜在的に大きな整数につながります。私の質問は次のとおりです。
XOR
型に格納できないような大きな整数値を生成する可能性さえありint
ますか?- これが起こる可能性がない場合、これの証拠はありますか?
python - TypeError: 16 進文字列のデコード中に長さが奇数の文字列であり、for ループを使用してリスト内の 1 つのポイントにのみ反復します
HEX 文字列のデコードに問題があります。
私はそれを解決するためにいくつかの方法を試しましたが、何もうまくいかないようです。また、一部のプリントをデコードせずに反復すると、for ループが g 文字でクラッシュします。手がかりはありますか?
bitwise-operators - ビット単位の XOR および ADD 方程式を解く
当然、XOR を 2 回使用して元の値を取得できます。元の値がマスクの一部である場合はどうなりますか?
エンコーディング:
仮定: 開始値 c[-1] = 0、^ はビット単位の XOR を意味します
命令型 C 形式:
これを e => c から逆にするデコード ステップを作成するにはどうすればよいですか?
私はあなたの答えから学んだことを考慮して、質問を単純化/明確化しました(読んでください:変更しました)!元の方程式から始めて、DanL と同様の手順を使用します。
???
ここで、元のエンコードを見ると、最初のバイトは常にゼロになります (= c[i] ^ (c[i] + 0))。そうです、セット全体で 1 バイトの損失があるはずです。
python - Pythonでバイトオブジェクトをxorできないのはなぜですか?
私は Python バイト オブジェクトを理解していると思いますが、バイト文字列に対するビット単位の操作をサポートすることは、そのような明らかな機能のように思えます。サポートされていない理由がわかりません。
わかった。文字列から、ASCII での文字列のバイト表現のようなものになりました。
だから私がしようとすると:
なんで?Python がこれをサポートしていないのはなぜですか? これを実行不可能またはあいまいにするバイトオブジェクトについて理解できないことはありますか?