5

重複の可能性:
javascript のビット単位の理解

ここで見つけました:フロントエンドインタビューの質問は下にあります。このコード ~~3.14 は何を返しますか?

私はグーグルで検索しましたが、これについては何も見つかりませんでした。

4

3 に答える 3

5

これは3を返します~。JavaScriptのビット単位のNOT演算子を表します。

基本的に、〜3.14は〜3と同じで、バイナリの〜011 => 100または基数10の4です。〜4または〜100は基数10の011または3です。

于 2012-09-26T06:00:54.583 に答える
5

チルダは、入力を32ビット整数に変換した後、入力に対してビット単位のNOTを実行します。

MDNから:

任意の数にビット単位で注意すると、xが得られ-(x + 1)ます。たとえば、~5を生成し-6ます。

あなたの場合:

  ~~3.14
= -((~3.14) + 1)
= -(-(3.14 + 1) + 1)
= -(-(3 + 1) + 1)
= -(-4 + 1)
= -(-3)
= 3
于 2012-09-26T06:01:33.907 に答える
5

~JavaScript (および C/C++ およびその他の言語)のビット単位の補数演算子です。ここで詳細を見つけることができます:ビットごとの補数 (~) 演算子はどのように機能しますか?

この場合:

  • 3.14は浮動小数点から整数に変換されるため、 になり3ます。
  • ~3これは-42 の補数表現によるものです。
  • ~(-4)となり3ます。

基本的に、は2 の補数表現の整数に~n等しいです。-n-1

于 2012-09-26T06:06:21.993 に答える