JAVA 웹 개발 패키지 - 패스트캠퍼스/Chapter1

Java의 연산자들 - 3 : ( 조건 연산자, 비트 연산자)

giggs 2021. 12. 23. 14:02

 

 

조건 연산자

 

 

삼항 연산자

 

조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨

if (조건문)을 간단히 표현할 때 사용할 수 있음

 

 

조건식 ? 결과1 : 결과2 

 

 

+ scanner -

 

콘솔창에서 직접 입력해서 받아오는 기능 맛보기로

Scanner.scanner = new Scanner ( system.in )

                        java.util 클릭 -> import java.util.Scanner; 생김

스캐너 사용 설정 완료

import ~~ 스캐너가 여기 있는 놈이다 알려주는 키워드 정도로 일단 이해

 

 

 

설정 완료 Scanner

 

 

 

 

 

스캐너로 입력받겠다.

 

조건식 ( if 문 간단히 )

조건식 ? 결과1 : 결과2

 

x가 y보다 크면 X출력

아니면 y 출력

 

 

5 입력하면 입력 2:

저절로 생김

2 입력하면

둘 중 큰 수 5 출력

 

 

 

 

 

 


 

 

비트 연산자

 

 

 

대입 연산자와 다른 연산자가 함께 쓰임

 

마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때

 

비트 켜기 

특정 비트들만을 1로 설정해서 사용하고 싶을 때
예) & 00001111 ( 하위 4비트 중 1인 비트만 꺼내기) AND 연산자 사용하여 1인 비트 꺼내기

 

비트 끄기 

특정 비트들만을 0으로 설정해서 사용하고 싶을 때
예) | 11110000 ( 하위 4비트 중 0 인 비트만 0으로 만들기) OR 연산자 사용하여 0으로 만들기

 

비트 토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때

 


 

5를 비트로 표현하면 0 0 0 0 0 1 0 1 이걸로 비트 켜지 비트 끄기 예시

 

   0 0 0 0 0 1 0 1                              0 0 0 0 0 1 0 1

& 0 0 0 0 1 1 1 1                           |  0 0 0 0 1 1 1 1  

 

--------------------                            --------------------

   0 0 0 0 0 1 0 1 결과                       0 0 0 0 1 1 1 1 결과

 

뒤에 4비트의 상태를 알고 싶다. 

 

 

논리 연산자에서는 && 와 || 2개씩 사용했지만 비트 연산자에서는 1개씩 사용

~ 와 ^ 도 참조

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

num1의 값을 변화시켜주기 위해

= 대입 연산자 사용

사용 안 하면 결과 값만 바뀌고 

num1의 값은 변화지 않는다!

 

 

 

 

 

 

 

 

 

 

왼쪽

비트가 옮겨진 계수만큼 5X 2^n으로 곱해지는 것과 같다.

<<1 : 5X2^1

<<2 : 5X2^2

 

오른쪽

비트가 옮겨진 계수만큼 5 / 2^n으로 나눠지는 것과 같다.

>>1 : 5 /2^1

>>2 : 5 / 2^2

 

 

 

연산자 우선순위

 

 

순위에 따라 공백이나 괄호 없이도 실행이 되지만

우선순위와 별개로 ( ) 괄호를 잘 써서 가독성 좋게 코드를 만드는 것이 중요하다.

 

 

 

 


 

 

 

 

review

조건식 ? 결과1 : 결과2;
if문 간단히 표현하는 방법 WoW
궁금했던 if 문과 for 문의 시작을 알리는 것 같은 느낌
조건 연산자 good

스캐너의 기능도 배우고 실행해보았다.
직접 창에 입력한 값으로 적용돼서 잘 실행되니까 신기하기도 하고
재미도 느꼈다.

비트 연산자..
단위가 더 내려간 만큼 00000101 계산하는 것은 복잡해 보였는데
막상 실습해보고 적용해보니
관계 연산자와 비슷한 면이 많아서 이해하기 수월했다.
비트 켜기와 끄기 비트 이동을 왜 하는지는 아직 알 수 없지만
방법을 숙지해놓고 있어야겠다.

GOOD :)