重複の可能性:
javascript のビット単位の理解
ここで見つけました:フロントエンドインタビューの質問は下にあります。このコード ~~3.14 は何を返しますか?
私はグーグルで検索しましたが、これについては何も見つかりませんでした。
重複の可能性:
javascript のビット単位の理解
ここで見つけました:フロントエンドインタビューの質問は下にあります。このコード ~~3.14 は何を返しますか?
私はグーグルで検索しましたが、これについては何も見つかりませんでした。
これは3を返します~。JavaScriptのビット単位のNOT演算子を表します。
基本的に、〜3.14は〜3と同じで、バイナリの〜011 => 100または基数10の4です。〜4または〜100は基数10の011または3です。
チルダは、入力を32ビット整数に変換した後、入力に対してビット単位のNOTを実行します。
MDNから:
任意の数にビット単位で注意すると、
xが得られ-(x + 1)ます。たとえば、~5を生成し-6ます。
あなたの場合:
~~3.14
= -((~3.14) + 1)
= -(-(3.14 + 1) + 1)
= -(-(3 + 1) + 1)
= -(-4 + 1)
= -(-3)
= 3
~JavaScript (および C/C++ およびその他の言語)のビット単位の補数演算子です。ここで詳細を見つけることができます:ビットごとの補数 (~) 演算子はどのように機能しますか?
この場合:
3.14は浮動小数点から整数に変換されるため、 になり3ます。~3これは-4、2 の補数表現によるものです。~(-4)となり3ます。基本的に、は2 の補数表現の整数に~n等しいです。-n-1