내가 모든 내가 찾을 수있는, 대답을 둘러보고 만 한 것은 왜JavaScript : 어떻게해야합니까 >> 0 = 1?
true == 1 = true
false == 0 = true
난 아직도 자바 스크립트가 Boolean
형식을 사용하고 int
유형
true >> 0 = 1
false >> 1 = 0
내가 모든 내가 찾을 수있는, 대답을 둘러보고 만 한 것은 왜JavaScript : 어떻게해야합니까 >> 0 = 1?
true == 1 = true
false == 0 = true
난 아직도 자바 스크립트가 Boolean
형식을 사용하고 int
유형
true >> 0 = 1
false >> 1 = 0
먼저 true
은 JavaScript에서 암시 적으로 1
으로 변환됩니다 (콘솔에서 Number(true) + 1
을 시도하면 2
이됩니다).
더욱이 >>
는 비트 오른쪽으로의 번호, 폐기 비트 시프트 떨어져 이동한다. 따라서 true >> 0
은 암시 적으로true
에서 1
(아무 비트도 이동하지 않았 음)을 제외하고는 아무 것도 수행하지 않습니다. 두번째 예
false
내재적 시프트 비트가 폐기되기 때문에, 변속이 결과에 영향을주지 않는다
0
및
로 변환된다. false >> 1000
을 시도해보십시오. 여전히 0
입니다. ,
당신이 비트 이동, 비트 연산자에 대해 잘 모르는 경우 :
훨씬 나은 설명 는 @ 아담 - 벡 덕분에, 그는 또 다른 좋은 점을 추가, here 찾을 수 있습니다 심지어 진수 작업, 당신은 0으로 (>> 또는 < <) 이동 때 모든 수를 변경하지 않는 것을 알고 :
152 >> 0 === 152
을 질문 제목 연산자 많이 있습니다. 그들이 사용자에 의해 어떻게 해석되는지에 따라 혼란을 야기 할 수 있습니다. 명확하게하기 위해 조정할 수 있습니까? – byxor
'true'는 Number ==> ** 1 **로 변환되고 오른쪽으로 0으로 이동하면 아무것도하지 않습니다. 비교를 위해 엄격한 항등 ('===')과 등가 ('! ==') 연산자를 사용하십시오. – Tushar
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#>>(Sign-pagging_right_shift)를보십시오. 또한 true는 true = 1 false = 0이므로 true가 암시 적으로 1로 변환된다는 것을 이해하십시오. –