JavaScript에서는 "~" 연산자를 사용하여 "~ 피연산자" 구문으로 비트 부정을 구현할 수 있습니다. "~" 연산자는 지정된 피연산자를 이진 정수 형식으로 변환하고 이진 피연산자를 하나씩 수행할 수 있습니다. 비트가 반전됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
JavaScript에서는 "~" 연산자를 사용하여 비트 부정을 구현할 수 있습니다. 예를 들어 ~1 = -2, ~-3=2, ~true=-2, ~false=-1
"~" 연산자는 지정된 값의 이진 표현을 보고 이진 피연산자를 비트 단위로 가져올 수 있습니다. . 역연산
1단계: 피연산자를 32비트 이진 정수로 변환합니다.
2단계: 반전 연산을 비트 단위로 수행합니다.
3단계: 이진수 1의 보수를 십진수 부동 소수점 숫자로 변환합니다.
12에 비트 단위 NOT 연산을 수행하면 반환 값은 -13입니다.
console.log( ~ 12 ); //返回值-13
다음 그림은 12에 대해 비트별 NOT 연산을 수행하는 과정을 산술식 형태로 분석한 것입니다.
비트 반전 계산 방법
비트 반전의 연산 규칙 및 단계:
2진 원본 코드로 변환, 최상위 비트는 부호 비트, 0은 양수, 1은 음수
十进制 ----> 原码 1 ----> 00000001 -1 ----> 10000001
양수의 역코드가 원래 코드, 음수의 역코드가 부호 비트
十进制 ----> 原码 ----> 反码 1 ----> 00000001 ----> 00000001 -1 ----> 10000001 ----> 11111110
양수의 보수는 여전히 원래 코드이고, 음수의 보수는 보수에 1을 더하는 것입니다. 보수
十进制 ----> 原码 ----> 反码 ----> 补码 1 ----> 00000001 ----> 00000001 ----> 00000001 -1 ----> 10000001 ----> 11111110 ----> 11111111
양의 정수 보수를 뒤집습니다. 그 후 기호 위치는 1이므로 음의 정수이므로 음의 정수 방법에 따라 보수를 계산합니다. 원래 코드를 얻기 위한 역연산
원래 코드를 얻기 위한 역연산, 먼저 역보를 역코드로 변환합니다. 공식 : 1의 보수 코드 = 1의 보수 - 1, 그런 다음 1의 보수 코드를 1의 보수 코드로 변환합니다. 원래 코드에서는 부호 비트는 그대로 유지되고 다른 비트는 반전됩니다
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反 ----> 取反补码转成反码 ----> 转成原码 1 ----> 00000001 ----> 0000001 ----> 00000001 ----> 11111110 ----> 11111101 ----> 10000010
음의 정수의 보수가 반전된 후 부호 위치는 0이 되는데, 이는 양의 정수이므로 양의 정수입니다. 1의 보수와 1의 보수 정수 그 자체이므로 역연산을 할 필요가 없습니다
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反得原码 -1 ----> 10000001 ----> 11111110 ----> 11111111 ----> 00000000
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反 ----> 取反补码转成反码 ----> 转成原码 ----> 转成二进制 1 ----> 00000001 ----> 0000001 ----> 00000001 ----> 11111110 ----> 11111101 ----> 10000010 ----> -2
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反得原码 ----> 转成二进制 -1 ----> 10000001 ----> 11111110 ----> 11111111 ----> 00000000 ----> 0
그래서 ~1=-2, ~-1=0
역전의 기능 부정~~
연산자~는 표면적으로는 ~~(역순 다음 부정)은 의미가 없습니다. 실제로 JS에서는 부동소수점 숫자를 반전시킬 수 있습니다.
console.log(~~1.11); //1 console.log(~~-25.11); //-25
【관련 추천: javascript 학습 튜토리얼】
위 내용은 자바스크립트에서 비트 부정을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!