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
'Project' 카테고리의 다른 글
DB 모델링 및 테이블 준비 (0) | 2021.10.19 |
---|---|
데이터 관리 서버 만들기 - 5) 통신 기능을 캡슐화 (0) | 2021.10.11 |
데이터 관리 서버 만들기 - 4) 프로토콜 정의 및 적용 (0) | 2021.10.03 |
데이터 관리 서버 만들기 - 3) 사용자가 입력한 명령처리 (0) | 2021.10.03 |
Java로 게시판 자동 번호 생성하기 (0) | 2021.09.20 |