2013-02-20 58 views
1

我知道bitwise運營商是按位取反,是指1變爲0,0變爲1JavaScript按位運算符如何工作?

但我的問題是有關如下:

var c = 5.87656778; 
alert(~c); 

警報-6

var c = 5.87656778; 
alert(~~c); 

alert 5

C有人對此有所反應?

+0

jQuery開發人員「據說」熟悉javascript ... – 2013-02-20 18:01:17

+0

@GonçaloVieira:呃,我不知道,我不會指望那個;-) – maerics 2013-02-20 18:02:20

+1

剛剛閱讀https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers – marekful 2013-02-20 18:04:30

回答

5

基本上,它通過截斷小數部分將數字轉換爲整數,並對該整數表示執行通常的按位運算。

對此,MDN有一些不錯的documentation

5 in binary is = 00000000000000000000000000000101 = 5 
        -------------------------------- 
~5 in binary is = 11111111111111111111111111111010 = -6 
0

它們都在32位有符號整數上工作。除了零填充右移之外,>>>對32位無符號整數起作用。

所以任何浮點數都通過截斷轉換爲整數。