본문 바로가기

Project

비트 연산자로 권한 설정하기

728x90

수업 때 비회원, 회원, 관리자를 비트로 권한 설정을 배웠다.

 

 

비트 연산자는 정수에만 사용할 수 있다.

 

연산자 설명
~ 비트의 반전(1의 보수) a = ~a;
& 비트 단위 AND 1 & 1 1반환 그 외는 0
| 비트 단위 OR 0 | 0 0반환 그 외는 1
^ 비트 단위 XOR 두개의 비트가 서로 다른 경우에 1을 반환

 

&(AND) 연산자 : 두 비트가 모두 1인 경우만 1 아니면 0

 

int num1 = 5;				//num1 : 00000101
int num2 = 10;				//num2 : 00001010
int result = num1 & num2;	//		 00000000

 

|(OR) 연산자 : 두 비트가 모두 0인 경우만 0 아니면 1

 

int num1 = 5;				//num1 : 00000101
int num2 = 10;				//num2 : 00001010
int result = num1 | num2;  		 //	 00001111

 

연산자 설명
<< 왼쪽 shift a << 2 변수 a를 2비트만큼 왼쪽으로 이동
>> 오른쪽 shift a >> 2 변수 a를 2비트만큼 오른쪽으로 이동
>>> 오른쪽 shift >> 동일한 연산
채워지는 비트가 부호와 상관없이 0임

 

<< (오른쪽 shift) : 비트를 왼쪽에서 오른쪽으로 이동하는 연산자

>> (왼쪽 shift) : 비트를 오른쪽에서 왼쪽으로 이동하는 연산자

 

<<<, >>> : shift로 비트 이동은 동일한데, 남은 공간을 무조건 부호비트가 아닌 0으로 채움

 

// 정수 15의 왼쪽 2 자리 이동하는 경우 (15<<2) 는 경우
00000000 00000000 00000000 00001111
00000000 00000000 00000000 0000111100 // 결과 : 60

 

출처 : do it 자바프로그래밍 강의

 

 


비회원 : 0x02 // 00000001

   회원 : 0x04 // 00000010

관리자 : 0x06 // 00000100