2013-02-20 4 views
1

내가 아는 bitwise 연산자, 비트 NOT이다 1 0이됩니다 의미하고, 0은 1JavaScript Bitwise 연산자는 어떻게 작동합니까?

하게하지만 내 질문은 다음과 관련이있다 :

var c = 5.87656778; 
alert(~c); 

경고 -6

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

경고 5

C 누군가가 이것에 관해서 somelight를 던지나요?

+0

jQuery 개발자는 "아마 ..."자바 스크립트에 익숙합니다. –

+0

@ GonçaloVieira : 예, 저는 믿을 수 없습니다 .-) – maerics

+1

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators # Signed_32-bit_integers – marekful

답변

5

기본적으로 소수 부분을 잘라서 숫자를 정수로 변환하고 해당 정수 표현에 대해 일반적인 비트 연산을 수행합니다.

MDN에는 이것에 꽤 좋은 documentation이 있습니다.

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

이들은 모두 32 비트 부호있는 정수에서 작동합니다. zero-fill 오른쪽 시프트를 제외하면, >>>은 32 비트 부호없는 정수에서 작동합니다.

따라서 모든 부동 소수점은 잘림을 통해 정수로 변환됩니다.

관련 문제