내가 아는 bitwise
연산자, 비트 NOT이다 1 0이됩니다 의미하고, 0은 1JavaScript Bitwise 연산자는 어떻게 작동합니까?
하게하지만 내 질문은 다음과 관련이있다 :
var c = 5.87656778;
alert(~c);
경고 -6
var c = 5.87656778;
alert(~~c);
경고 5
C 누군가가 이것에 관해서 somelight를 던지나요?
내가 아는 bitwise
연산자, 비트 NOT이다 1 0이됩니다 의미하고, 0은 1JavaScript Bitwise 연산자는 어떻게 작동합니까?
하게하지만 내 질문은 다음과 관련이있다 :
var c = 5.87656778;
alert(~c);
경고 -6
var c = 5.87656778;
alert(~~c);
경고 5
C 누군가가 이것에 관해서 somelight를 던지나요?
기본적으로 소수 부분을 잘라서 숫자를 정수로 변환하고 해당 정수 표현에 대해 일반적인 비트 연산을 수행합니다.
MDN에는 이것에 꽤 좋은 documentation이 있습니다.
5 in binary is = 00000000000000000000000000000101 = 5
--------------------------------
~5 in binary is = 11111111111111111111111111111010 = -6
이들은 모두 32 비트 부호있는 정수에서 작동합니다. zero-fill 오른쪽 시프트를 제외하면, >>>
은 32 비트 부호없는 정수에서 작동합니다.
따라서 모든 부동 소수점은 잘림을 통해 정수로 변환됩니다.
jQuery 개발자는 "아마 ..."자바 스크립트에 익숙합니다. –
@ GonçaloVieira : 예, 저는 믿을 수 없습니다 .-) – maerics
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators # Signed_32-bit_integers – marekful