問題タブ [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.
complement - 正数と負数の 1 の補数を計算する方法は?
数を表すために 1 の補数を使用すると、どのような結果が得られますか?
たとえば、数値 01110 (正の数) の 1 の補数は 01110 または 10001 である必要がありますか?
数値が 10001 (負の数値) の場合、1 の補数は 01110 ですか?
regex - 2つのテキストファイルから補完行を取得するにはどうすればよいですか?
2つのテキストファイルから補完行を取得するにはどうすればよいですか?
ファイルfile1.txt
には
ファイルfile2.txt
には
file1.txt
にではなく、すべての行を入れたいfile2.txt
。2つのファイルは数百MBの大きさで、非ASCII文字が含まれています。これを行うための高速な方法は何ですか?
mysql - 多くのテーブルとグループ化によるMysqlの補完
答えが単純で、私がばかであることを願っています。
day
したがって、 (with PK id_day
) とhour
(with PK )の 2 つのテーブルがありid_hour
ます。
、フィールド、プラス FK フィールド (禁止されている時間) をtilt_time
持つ別のテーブルがあります。たとえば、次の行 ( 、、) があります。id_day
id_hour
tilt_time
id_day
id_hour
id_target
In tableday
id_day
は 1 から 5 (月曜日から金曜日)の間で、1 から 6 の間です (したがって、5*6=30 の値を持つテーブルをhour
id_hour
想像できます)。day_hour
そこで、 queryid_target=1
の無料期間とid_target=2
の無料期間 (everbody の無料期間) が必要です。だから私は似たようなものをしたい:
(* はすべての有効なid_hour
値を意味するため、* を含むすべての行は 6 つの異なる行を表します)
このクエリを実行するにはどうすればよいですか?
java - 先行ゼロのバイナリ ビットを除く整数値を補完するアルゴリズムの改善
最初に、「先行ゼロのバイナリ ビットを除いた整数値の補数」の意味を説明します (今後は、簡潔にするために、非先行ゼロ ビット補数または NLZ 補数と呼びます)。
たとえば、整数 92 があります。2 進数は 1011100 です。通常のビット単位の NOT または補数を実行すると、結果は -93 (符号付き整数) または 1111111111111111111111110100011 (バイナリ) になります。これは、先頭のゼロ ビットも補完されているためです。
そのため、NLZ 補数の場合、先頭のゼロ ビットは補数されず、92 または 1011100 の NLZ 補数の結果は 35 または 100011 (バイナリ) になります。演算は、入力値を 1 ビットのシーケンスで XOR することによって実行されます。イラスト:
私は次のようなJavaアルゴリズムを作成しました:
上記のアルゴリズム、特に 1 ビット補数のシーケンス (oneBitsSequence) を生成するための行を最適化する方法についてアドバイスが必要ですか、またはより良いアルゴリズムを提案できる人はいますか?
更新:この先行しないゼロ補数の既知の用語も知りたいですか?
python - リスト内の(アイテム、その他)を繰り返します
私がリストを持っているとしましょう:
リストから各アイテムとその補足を取得して、リストを反復処理するにはどうすればよいですか?あれは、
印刷します
理想的には、理解に使える簡潔な表現を探しています。
java - Javaの符号付き数値と補数を理解する
Javaでの値を決定するために必要な3バイトの符号付き数値があります。私はそれが1の補数で署名されていると信じていますが、100%確信はありません(私はこのことを10年以上研究しておらず、私の問題の文書化はあまり明確ではありません)。私が抱えている問題は、Javaが2の補数ですべてを実行することだと思います。示す具体的な例があります。
元の3バイトの数値:
0xEE1B17
整数(
Integer.parseInt(s, 16)
)として解析すると、次のようになります:15604503これを簡単にビットフリップ(
~
)すると、2の補数表現が得られます(と思います):-15604504しかし、私が取得する必要がある値は次のとおりです。-1172713
私が起こっていると思うのは、intの3バイトだけでなく、int全体の2の補数を取得しているということですが、これを修正する方法がわかりません。
私ができることは、整数を2進文字列(Integer.toBinaryString()
)に変換してから、すべての0を1に、またはその逆に手動で「反転」することです。次に、この整数(Integer.parseInt(s, 16)
)を解析すると、非常に近い1172712が得られます。他のすべての例では、答えを得るために常に結果に1を追加する必要があります。
ここで使用されている符号付き数値エンコーディングのタイプを診断できますか?また、文字列のすべての文字を手動で反転する以外の解決策があるかどうかを診断できますか?これを行うにはもっとエレガントな方法があるに違いないと思います。
編集:すべてのレスポンダーはさまざまな方法で助けてくれましたが、私の一般的な質問は3バイトの数字を反転する方法で、@ louis-wassermanがこれに答えて最初に答えたので、彼を解決策としてマークします。助けてくれたみんなに感謝します!
matlab - 別のセットの要素ではないセット内の要素 (相対補数)
ではmatlab
、次のことをどのように実装できますか?
ある setA
と別の setB
があり、どちらにもいくつかの要素があるとします。にないB
値のみを返す関数を作成するにはどうすればよいですか( A の B の相対補数?A
B\A
ありがとう。
binary - 8ビット2の補数11010110の10進値はいくつですか。
これはもっと難しい質問ですが、私はこれを理解できません。214になると思っていたのですが、左の最初のビットのせいでよくわかりません。
binary - 1 の補数または 2 の補数を使用する場合、符号ビットは変わりますか?
私は単純な概念のように見えるものに苦労してきましたが、バイナリ変換を組み合わせたり混同したりし続けているようです。
2 進数で与えられた数値に 1 の補数を適用すると、すべてのビットが反転します。0を1、1を0にする。2 の補数の場合は、1 の補数のようにビットを反転して 1 を加算します。
これは、文字通りすべてのビットを反転させるということですか? 何らかの理由で、左端のビット (符号ビット) を除いて、すべてのビットを反転する必要があると考え続けています。ここにいくつかの例があります..私がこれを正しく行っているかどうか教えてもらえますか?
1101001
1のコンプ: 0010110
2のコンプ: 0010111
01110101
1のコンプ: 10001010
2 のコンプ: 10001011
011110110
1のコンプ: 100001001
2 のコンプ: 100001011
ありがとう。
regex - 正規表現の補数を見つける
2 つの式の補数を求める問題が演習シートに出題されています
(1)(aa|bb)*
と
(2) (a|b)(aa|bb)(a|b)
.
両方の補数は、私の意見では、のみまたはのみa* | b*
を意味しますか?a
b