> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 비트 연산자_javascript 기술 적용에 대한 간략한 분석

JavaScript 비트 연산자_javascript 기술 적용에 대한 간략한 분석

WBOY
풀어 주다: 2016-05-16 17:01:34
원래의
1274명이 탐색했습니다.

대부분의 언어는 비트 연산자를 제공합니다. 비트 연산자는 c, c 등의 언어에서 널리 사용되지만 JS, AS 등의 스크립팅 언어에는 적용 사례가 많지 않습니다. 비트 연산자를 사용하여 좋은 결과를 얻으십시오.
다음은 제가 알고 있는 내용을 바탕으로 js에서 비트 연산을 사용하는 방법에 대한 간략한 설명입니다(다른 언어에도 적용됩니다). 오류가 있으면 수정해 주세요.

비트 연산자는 피연산자를 숫자 값이 아닌 일련의 개별 비트로 처리합니다. 그래서 그 전에 "비트"가 무엇인지 언급해야 합니다.
숫자나 문자는 0과 1의 순서로 메모리에 저장됩니다. 각각의 0과 1을 비트라고 합니다. 예를 들어 10진수 데이터 2는 다음과 같이 저장됩니다. 컴퓨터는 0 0 0 0 0 1 0으로 표시됩니다. 메모리의 비트 값을 변경하면 이 값의 의미도 변경됩니다. 예를 들어 2의 앞부분을 한 자리 이동하면 이제 저장 단위가 0 0 0이 됩니다. 0 0 1 0 0. 이 값은 비트 연산자의 작동 원리인 10진수 4를 나타냅니다.

6개의 비트 연산자
& 비트 AND
| 비트 또는
^ 비트 XOR
~ 부정
>>
<<왼쪽으로 이동


1 & 연산자
&는 피연산자의 해당 비트를 특정 방식으로 결합하는 이진 연산자입니다. 해당 비트가 모두 1이면 결과는 1입니다. 0이면 결과는 0
1과 3의 결과는 1
작동 방식을 살펴보겠습니다.
1의 이진 표현은 0 0 0 0 0 0 1
3의 이진 표현으로 표현되었습니다. as 0 0 0 0 0 1 1
&의 규칙에 따라 얻은 결과는 0 0 0 0 0 0 0 1입니다. 소수점 표현은 1입니다

비트 하나라도 0이면 & 연산의 결과는 0이므로 &를 사용하여 변수의 불필요한 비트를 0으로 설정할 수 있습니다. 예를 들어 변수의 이진 표현은 0 1 0 0입니다. 1 0 0 1, I 하위 4비트를 유지하려면 & 0x0F를 사용하여 상위 4비트를 제거하세요(기억하세요: 0x0F는 16진수 표기법이고 해당 이진수는 0 0 0 0 1 1 1 1입니다). 이 기능에는 매우 중요한 응용 프로그램이 있습니다. 나중에 언급하겠습니다.

2 | 연산자
|와 &의 차이점은 해당 비트의 피연산자가 1이면 결과는 1입니다.
1 | 3의 결과는 3입니다.

3 ^ 연산자

^ 연산자는 |와 유사하지만 한 가지 차이점은 두 연산 비트가 모두 1이면 결과는 0
0 1 0 0 0 0 0 1
0 1 0 1입니다. 1 0 1 0
은 0 0 0 1 1 0 1 1
을 산출합니다.

4 ~ 연산자

~는 비트 부정, 1은 0으로 변경, 0은 1로 변경

5 시프트 연산자는 지정된 값에 따라 비트를 왼쪽이나 오른쪽으로 이동합니다.

<<는 왼쪽으로 이동하고 >>는 오른쪽으로 이동합니다. , 빈 비트는 0으로 채워집니다

예를 들어 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1(십진수 16387)을 왼쪽으로 두 자리 이동하면

0 0 0 0 0 0 0 0 0 0 0 1 1 0이 됩니다. 0 (십진수 12)
오른쪽으로 두 자리 이동한 것은
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 (십진수 4096)

다음은 몇 가지 특정 응용 프로그램을 소개합니다
앞서 언급했듯이 2는 1자리 앞으로 이동하여 4가 됩니다. 이 기능은 곱셈 연산을 수행하는 데 사용할 수 있습니다
2 <<
3 << 1 = 6
4 << 1 = 8
마찬가지로>>

모든 소수는 정수로 반올림될 수 있습니다.

예: 3.14159 >> 0 = 3;

^컴퓨팅 서비스에는 마법 같은 기능이 있습니다

다음 코드와 같은


<script><div class="codebody" id="code2471">var n1 = 3; <br>var n2 = 4;<br>n1 ^= n2;<br>n2 ^= n1;<br>n1 ^= n2;<br></script> 🎜>
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿