問題タブ [complement]
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.
c - K&R C の第 2 章の「getbits()」メソッドを理解するのに助けが必要
第 2 章のビット演算子に関するセクション (セクション 2.9) で、サンプル メソッドの 1 つがどのように機能するかを理解するのに苦労しています。
提供されるメソッドは次のとおりです。
考え方は、指定された数値x に対して、位置pから始まるnビットを右から数えて返すというものです(右端のビットが位置 0 になります)。次の方法を考えます。main()
出力は次のとおりです。
getbits(63892 (f994), 4, 3) = 5 (5)
私はこれの一部を理解していますが、主に私が理解していないビット (しゃれは意図していません) のために、「全体像」に問題があります。
私が特に問題を抱えている部分は、補足部分です: ~(~0 << n)
. xを扱う最初の部分を取得したと思います。私が苦労しているのはこの部分 (そしてマスク) であり、実際にそれらのビットを取得するためにすべてがどのように組み合わされるかです。(コードと calc.exe を使用して結果をチェックすることの両方で、それが実行されていることを確認しました。バイナリ ビューがあることを神に感謝します!)
何か助けはありますか?
operators - ビット単位の補数演算子 (~ チルダ) はどのように機能しますか?
~2 が -3 に等しいのはなぜですか? ~
オペレーターはどのように機能しますか?
binary - 正の数の2の補数表記は同じ数ですか?
正の数の2の補数表記は、その2進表現と同じですか?
java - C、C++、Java が 1 つの補数を使用しないのはなぜですか?
C、C++、Java ではバイナリ表現に 2 つの補数を使用していると聞きました。1補数を使用しないのはなぜですか? 1補数よりも2補数を使用する利点はありますか?
c++ - C++: 数の補数とその可能な不一致の数を計算する
アルゴリズムに少し行き詰まりました。問題を解決するために助けが必要です。例は私の問題をよりよく説明すると思います。
仮定:
- d = 4 (数値で許可される最大ビット数、2^4-1=15)。
- m_max = 1 (許容されるビット不一致の最大数)。
- kappa = (特定の d および m に対して検索する要素の最大数、ここで m は m_max 内)
主なアイデアは、与えられた数 x がその補数 (2 進数ベース) を計算し、x の補数から m_max までの不一致のすべての可能な組み合わせを計算することです。
プログラムは i = 0 から 15 までスキャンを開始します。
i = 0 および m = 0 の場合、kappa = \binom{d}{0} = 1 (これを完全一致と呼びます) の場合、可能なビットの組み合わせは 1111 (0: 0000 の場合) のみです。
i = 0 および m = 1 の場合、kappa = \binom{d}{1} = 4 (1 つの不一致) ビットの可能な組み合わせ: 1000、0100、0010、および 0001
私の問題は、それを一般的な d と m に一般化することでした。次のコードを書きました。
v[i][counter++] = v[i][0] ^ bits_mask
m_max の不一致 m_max ループに必要であり、元の問題では実行時まで m が不明であるため、アルゴリズムを m_max>1 に一般化できなかったため、行に行き詰まりました。
sql - 補足の日付範囲を見つけていますか?
StartDate 列と EndDate 列を持つ 2 つのテーブルがあります。
1 つのテーブル (TableA) からのすべての日付範囲と、他のテーブル (TableB) からのすべての補足日付範囲を含む単一の結果セットを返そうとしています。
3 つのデータセットから期待される結果セットは次のようになります。
日付範囲が連続しているとは限りません。また、テーブル間でどのように重複しているかを推測することはできません...各テーブル内では、重複しないと想定できます。
TableB の単一の日付範囲を複数の部分に分割して、その中のすべての補完的な「地域」を SQL で見つける方法に頭を悩ませています。
誰にも提案はありますか?
python - ネットワーク グラフの補数を描画するには?
それを行うことができるGraphvizの機能はありますか? そうでない場合、それを行うことができる他のフリーソフトウェアはありますか?
c# - C# で 2 つのコレクションの補数を見つける最も簡単な方法
ICollection<MyType>
とという型の 2 つのコレクションがc1
ありc2
ます。c2
にあるが にないアイテムのセットを見つけたいと思いますc1
。ここで、等しいことを示すヒューリスティックは のId
プロパティMyType
です。
C# (3.0) でこれを実行する最も簡単な方法は何ですか?
bash - Bashで符号なし番号を否定する
数値(16進数)があり、その補数が必要です。たとえば、X = 20
bashで否定を実行して、を返す場合Y = ~X = DF
です。bashである必要はありませんが、スクリプトにラップできる一般的なコマンドラインツールを使用する必要があります。また、数値はすべて符号なしである必要があり、使用可能なビットをオーバーフローさせないようにする必要があることに注意してください(たとえば、20
8ビットのみであるため、出力は8ビットの1の補数である必要があります)。
bashとbcを使用してさまざまなことを試しましたが、適切なコンボが見つかりませんでした。何か案は?
(誰かが気にかけている場合、目標はIRQアフィニティを特定のCPUに設定してから、他のIRQを他のすべてのプロセッサに設定することです。)
java - Javaで符号なしバイトのビットを反転するにはどうすればよいですか?
非常に単純なタイプの暗号化用のデコーダーを作成しようとしています。0 ~ 255 の数値をスキャナーで入力し、ビットを反転してから文字に変換して印刷します。
たとえば、数値 178 は文字 "M" に変換する必要があります。
178 は 10110010 です。
すべてのビットを反転すると、01001101 が得られます。これは、77 または文字としての「M」です。
私が抱えている主な問題は、私が知る限り、Java は符号なしバイトをサポートしていないということです。値を int または short として読み取ることができますが、余分なビットが原因で、変換中に値がオフになります。理想的には、ビットごとの補数演算子を使用できますが、符号付きの数値でこれを行うと、最終的に負の値になると思います。これにどのようにアプローチすべきかについてのアイデアはありますか?