私はいくつかのX11 ctypesコーディングを行っています。Cを知りませんが、これを理解するのに助けが必要です。
以下のCコード(C++ではないかもしれません)では、(~0L)
どういう意味ですか? JavascriptおよびPython ~0
手段 -1
。
812 int result = GetProperty(window, property_name,
813 (~0L), // (all of them)
814 &type, &format, &num_items, &properties);
ありがとう
0L
は、すべてのビットがゼロに設定されたlong
整数値です。これは一般に0
の定義です。 ~
はすべてのビットを反転することを意味し、すべてのビットが1に設定されたlong
整数が残ります。
2の補数演算(ほぼ普遍的)では、すべてのビットが1に設定された符号付きの値は-1
です。
~0L
の代わりに-1L
を使用する理由は、意図を明確にするためです。これは、数値としてではなく、ビットのコレクションとして使用することを意図しています。
Long型のゼロのビット単位の補数。