Java 입문 - 비트연산자
―비트연산자
모든 언어에서 공통적으로 쓰인다.
System.out.println(5&3);
// 1
5 - 00000000 00000000 00000000 00000101
3 - 00000000 00000000 00000000 00000011
00000000 00000000
00000000 00000001
논리엔드 연산자와 유사 (상위비트와 하위비트가 모두 1인 경우에만 1를 나타냄)
System.out.println(5|3);
// 7
5 - 00000000 00000000 00000000 00000101
3 - 00000000 00000000 00000000 00000011
00000000 00000000 00000000 00000111
논리or 연산자와 유사 (상위비트와 하위비트 중 하나라도 1인 경우 1를 나타냄)
System.out.println(5^3);
// 6
5 - 00000000 00000000 00000000 00000101
3 - 00000000 00000000 00000000 00000011
00000000 00000000 00000000 00000110
상위비트와 하위비트 중 서로 틀리면 1 같으면 0으로 나타냄
System.out.println(~5); // -6
5 - 00000000 00000000 00000000 00000101
11111111 11111111 11111111 11111010
비트not 연산자, 논리not연산자와 유사 (비트의 값을 반전시킴)
System.out.println(2<<1 4="" p="">
2 - 00000000 00000000 00000000 00000010
00000000 00000000
00000000 00000100
왼쪽으로 비트를 이동한다.
뾰족한 방향으로 이동한다.
곱셈 연산자를 대신해서 씀
System.out.println(8>>1);
// 4
8
- 00000000 00000000 00000000 00001000
00000000 00000000 00000000 00000100
오른쪽으로 비트를 이동한다.
부호비트에는 양수면 0을 음수면 1로 채운다.
나눗셈 연산자를 대신해서 씀
System.out.println(8>>>1);// 4
8
- 00000000 00000000 00000000 00001000
00000000 00000000 00000000 00000100
양수든 음수든 비는 비트를 무조건 0으로 채운다.
Java에만 있는 연산자
―연산을 활용한 if문
If((num1=num1+10)>10
&& (num2=num2+10)>)
System.out.println("Good");
→ 앞에 있는 값이 false이면 뒤에 꺼는 연산하지 않음
If((num1=num1+10)>10
|| (num2=num2+10)>10)
System.out.println("Nice");
→ 앞에 있는 값이 true이면 뒤에 꺼는 연산하지 않음
1>
댓글
댓글 쓰기