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이면 뒤에 꺼는 연산하지 않음

댓글

이 블로그의 인기 게시물

Like Video : 10대는 코인노래방, 20대는 익선동, 30대는 회사 옥상으로 모이는 이유 | #어쩌다어른 #사피엔스

Light and Glory over Crete

Like Video : 싸움 못해서 달리기 잘하는 아빠와 똑 닮은 인국이ㅠ (맴찢) 멜로가 체질(Be melodramatic) 4회