비트연산자
*정수는 4바이트=32비트
1바이트=8비트
비트 AND - &
var num1=5;
00000000 00000000 00000000 00000101 -5
var num2=3;
00000000 00000000 00000000 00000011 -3
var result = (num1&num2);
num1과 num2의 비트를 AND한다.
00000000 00000000 00000000 00000101 -5
00000000 00000000 00000000 00000011 -3
00000000 00000000 00000000 00000001 -1
document.write(result,"<br>");
비트 OR - |
var num1=5;
var num2=3;
var result = (num1|num2);
document.write(result,"<br>");
num1과 num2의 비트를 OR한다.
00000000 00000000 00000000 00000101 -5
00000000 00000000 00000000 00000011 -3
00000000 00000000 00000000 00000111 -7
비트 OR 진리표
0|0 -> 0
0|1 -> 1
1|0 -> 1
1|1 -> 1
비트 XOR - ^
*exclusive OR
*exclusive : 배타적인
var num1=5;
var num2=3;
var result = (num1^num2);
document.write(result,"<br>");
num1과 num2의 비트를 XOR한다.
00000000 00000000 00000000 00000101 -5
00000000 00000000 00000000 00000011 -3
00000000 00000000 00000000 00000110 -6
비트 XOR 진리표 (비트OR 진리표와 비슷)
0^0 -> 0
0^1 -> 1
1^0 -> 1
1^1 -> 0
비트 반전 - ~
var num=5;
var result = ~num;
document.write(result,"<br>");
num을 비트 반전한다.
00000000 00000000 00000000 00000101 - num : 5
11111111 11111111 11111111 11111010 - ~num : -6
* 컴퓨터에서 음의 정수를 표현할 때 2의 보수 표현법을 사용
5의 2의 보수는 -5
2의 보수 = 1의 보수+1
1의 보수 = 2의 보수-1
= 비트반전
00000000 00000000 00000000 00000101 -5
11111111 11111111 11111111 11111010 - 5의 1의 보수
11111111 11111111 11111111 11111011 - 5의 2의 보수
* 정수 제일 왼쪽 비트 : MSB(Most Significant Bit) 가장 중요한 비트
MSB가 정수의 부호를 결정한다.
MSB가 0이면 양수, 1이면 음수
비트 이동 - << , >>
prompt
var num=prompt("숫자 입력");
document.write(num,"<br>")
prompt를 실행하면 입력하는 명령창이 뜬다.
"숫자 입력" - 안내문
var num1=prompt("숫자1 입력");
var num2=prompt("숫자2 입력");
document.write(num1+num2,"<br>")
이렇게 하면 숫자의 덧셈으로 되지 않고 단순히 문자의 접합으로 출력됨
예를 들어 10과 20을 입력하면 30으로 나오지않고 1020 으로 출력됨
<script>
var num1 = prompt("숫자1 입력");
var num2 = prompt("숫자2 입력");
num1 = Number(num1);
num2 = Number(num2);
document.write(num1 + num2, "<br>")
</script>
Number 함수를 써주면 문자열을 숫자로 변환해준다.
예를 들어 10과 20을 입력하면 30으로 올바르게 출력된다.
confirm
'공부' 카테고리의 다른 글
24일차_JavaScript(4) (0) | 2021.02.04 |
---|---|
23일차_JavaScript(3) (0) | 2021.02.03 |
21일차_ JavaScript(1) (0) | 2021.02.01 |
18일차_HTML/CSS (10) (0) | 2021.01.27 |
16일차_HTML/CSS (9) (0) | 2021.01.25 |