비트 연산자

2022. 12. 28. 17:07Javascript/TCP school

비트 연산자(bitwise operator)

비트(bit) 단위로 논리 연산을 수행

비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용

 

비트 연산자 설명
& 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산)
| 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산)
^ 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산)
~ 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산)
<< 지정한 수만큼 비트를 전부 왼쪽으로 이동시킴. (left shift 연산)
>> 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산)
>>> 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 됨.

 

비트 AND 연산자(&)

두 비트가 모두 1일 때만 1을 반환하며, 다른 경우는 모두 0을 반환

 

비트 OR 연산자(|)

두 비트 중 하나라도 1이면 1을 반환하며, 두 비트가 모두 0일 때만 0을 반환

 

비트 XOR 연산자(^)

두 비트가 서로 다르면 1을 반환하고, 서로 같으면 0을 반환

 

비트 NOT 연산자(~)

비트가 1이면 0을 반환하고, 0이면 1을 반환

 

시프트 연산자(<<, >>), 비트 NOT 연산자(~)

var x = 15, y = 8, z = 15;
document.write((x << 1) + "<br>"); // 곱하기 2와 같으므로 15 * 2 = 30
document.write((y >> 1) + "<br>"); // 나누기 2와 같으므로 8 / 2 = 4
document.write(~z);                // 1의 보수와 같으므로 -(15+1) = -16
<!DOCTYPE html>
<html lang="ko">

<head>
	<meta charset="UTF-8">
	<title>JavaScript Operators</title>
</head>

<body>

	<h1>비트 연산자</h1>

	<script>
		var x = 15, y = -8, z = 15;
		document.write((x << 1) + "<br>");// 곱하기 2   30
		document.write((y >> 1) + "<br>");// 나누기 2   -4
		document.write((y >>> 1) + "<br>");// 부호 비트까지도 전부 오른쪽으로 이동됨.   2147483644
		document.write(~z);// 1의 보수   -16
	</script>
	
</body>

</html>

JavaScript Operators

비트 연산자


첫 번째 연산은 비트를 전부 왼쪽으로 1비트씩 이동시키는 연산

결괏값은 처음 값에 2를 곱한 것

두 번째 연산은 비트를 전부 오른쪽으로 1비트씩 이동시키는 연산

결괏값은 처음 값에 2를 나눈 것

 

참고

http://www.tcpschool.com/javascript/js_operator_bitwise

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

'Javascript > TCP school' 카테고리의 다른 글

조건문  (0) 2022.12.29
기타 연산자  (0) 2022.12.28
논리 연산자  (0) 2022.12.28
비교 연산자  (0) 2022.12.28
증감 연산자  (0) 2022.12.28