2017-11-27 5 views
0

JavaScriptの数値のバイナリビットを反転しようとしています。これらの文書(https://www.w3schools.com/js/js_bitwise.asp)によれば、ビット単位のNOT演算子(〜)がジョブを実行する必要があります。彼らは〜5が10を生成する例を持っています。しかし、自分で試してみると〜5が-6を生成します。JavaScriptビット単位NOT〜は同じ結果を生成しません

console.log(〜5)// -6

私は間違っていますか?

+2

'〜5'は'実際には-6'。あなたは正しい答えを得ています。 – Pointy

+0

あなたが参照している例は、4ビットの符号なし数値を使用しています。 32ビットまたは64ビットの*符号付き*を使用する現実世界では、同じページの他の例からもわかるように、 '〜5'は' -6'です。しかし、ページには4ビットの符号なしの数字が使用されているとは言わないので、誤解を招きます。より良いチュートリアルを見つけようとすると、w3schoolsが低品質の情報源であることを証明するたくさんの質問があります。 – axiac

+0

私は「この5〜10を返すために」という大きな黄色いボックスがあることを愛しています。 –

答えて

1

あなたがウェブサイト(https://www.w3schools.com)でビットをスクロールダウンした場合、あなたは(axiacが既に書かれているように)、この情報を見つける:上記

の例は、4ビットの符号なし2進数を使用しています。ための 本〜5戻る10. JavaScriptは符号付き整数 32ビットを使用ため

それが返され、それは10 を返さない-6。

00000000000000000000000000000101(5)

11111111111111111111111111111010(〜5 = -6)

Aは、整数マイナス記号として、左端のビットを使用して署名しました。

あなたは間違ったことはしませんでした。


var x = 5; 
 
document.getElementById("output").innerHTML=~5;
<div id="output"></div>

関連する問題