티스토리 뷰
비트 연산자와 비트 이동 연산자는
비트를 활용한 연산자이다.
비트 연산자는 한 개 혹은 두 개의 이진수에 대해 비트 단위로 적용되는 연산이다.
&(and):두 비트 모두 1 일 경우 1인 연산자
ex) 0101
&1011
=1
|(or):두 비트 중 하나라도 1일 경우 1인 연산자
ex) 0101
^1011
=1111
^(xor):두 비트 중 하나만 1일 경우 1인 연산자
ex) 0101
^1011
=1110
~(not):32비트를 기준으로 1일 경우 0 ,0일 경우 1로 바꾸는 연산
ex) ~0101
=11111111111111111111111111111010
비트이동 연산자는 이진수의 비트를 이동시키는 연산이다.
>>:비트열을 오른쪽으로 이동
ex) 0101>>1
= 0010
<<:비트열을 왼쪽으로 이동
ex) 0101<<1
= 1010
public class bitLogical {
public static void main(String[] args) {
int num1 =15;
int num2 = 8;
System.out.println("num1의 이진수 :"+ Integer.toBinaryString(num1));
System.out.println("num2의 이진수 :"+ Integer.toBinaryString(num2));
System.out.println("num1과num2의 &연산 값 이진수 :"+ Integer.toBinaryString(num1 & num2));
System.out.println("num1과num2의 |연산 값 이진수 :"+ Integer.toBinaryString(num1 | num2));
System.out.println("num1과num2의 ^연산 값 이진수 :"+ Integer.toBinaryString(num1 ^ num2));
System.out.println("num1 값의 << 2 연산 값 이진수 :"+ Integer.toBinaryString(num1 << 2));
System.out.println("num1 값의 >> 2 연산 값 이진수 :"+ Integer.toBinaryString(num1 >> 2));
System.out.println("num1 값의 ~연산 값 이진수 :"+ Integer.toBinaryString(~num1));
}
}
Integer.toBinaryString는 출력값을 이진수로 표현한다.
num1과 num2를 이진수로 표현하면 각각 1111과 1000이다.
이를 대입해 비트 연산을 해보면
&(and): 앞의 1만 서로 같으므로 '1000'
|(or): num1이 1111 이므로 '1111'
^(xor):첫 부분이 서로 같으므로
'111'
<<(비트 오른쪽 이동): 오른쪽으로 2만큼 이동했으므로
'111100'
>>(비트 왼쪽 이동): 왼쪽으로 2만큼 이동했으므로
'11'
~(not):32비트를 기준으로 0일 경우 1이고 1일 경우 0이므로
'11111111111111111111111111110000'
값이 정상적으로 출력된 모습이다.
'웹 프로그래밍 > JAVA' 카테고리의 다른 글
관계 연산자 (0) | 2021.01.29 |
---|---|
증감 연산자 (0) | 2021.01.29 |
논리 연산자(JAVA) (0) | 2021.01.29 |
산술 연산자 (JAVA) (0) | 2021.01.29 |
이클립스 JAVA 프로젝트 생성 (0) | 2021.01.29 |
- Total
- Today
- Yesterday
- consumer
- config
- MariaDB
- Gateway
- docker
- ACTUATOR
- UserService
- Kafka Connect
- git
- 빅-오
- zipkin
- LoadBalancer
- MSA
- Spring + ELK
- JWT
- Logstash to ElasticSearch
- 오늘저녁 삼겹살
- Logstash 활용
- kafka
- rabbitmq
- prometheus
- github
- 미래의나에게동기부여
- springcloud
- 운동일기
- producer
- elasticSearch
- 루틴기록
- 운동
- Feign
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |