찾다

 >  Q&A  >  본문

JavaScript 비트 NOT 연산자(~)

<TFC2017/>

복권 코드 보기

으아아아

~연산자가 숫자를 반올림할 수 있나요?

伊谢尔伦伊谢尔伦2738일 전1042

모든 응답(1)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-06-28 09:31:08

    ToInt32를 통해. 그 기능은 피연산자의 이진 형식을 비트 단위로 뒤집는 것입니다. 따라서 두 ~~가 함께 연결되면 다음 작업과 동일합니다.

    1. 피연산자에서 ToInt32를 수행합니다

    2. 비트 단위 뒤집기

    3. 비트 단위 반전은 실제로 여전히 ToInt32

    4. 의 절댓값 반올림을 사용합니다.

    또한 ~ 연산자에 대한 꽤 실용적인 요령이 있습니다. ~(-1) 的值为 0,而且 -1 是唯一一个经过 ~ 运算返回假值的值(包括其他那些特殊的值比如 NaN、{}、[] 等都不会返回假值)字符串和数组的 indexOf 函数查找失败会返回 -1,这时候就可以用 if(~str.indexOf('str')) // 来表示找到了
    比判断 >= 0 或者 != -1 更优雅,跟用 !! false가 아닌 값을 판단하는 데에도 동일한 효과가 있습니다

    저자: mdluo
    링크: https://www.zhihu.com/questio...

    반올림은 부동 소수점 숫자를 32비트 이진 정수로 변환하므로 23.5 >> 0 //2323.5 >> 0 //23와 같이 상태를 복원할 수 있는 비트 연산을 반올림할 수 있습니다.

    회신하다
    0
  • 취소회신하다