package b_operation;
public class OperationEx01 {
public static void main(String[] args){
/* 8. 쉬프트 연산자(<<, >>, >>>그래픽에 이용)
- 정수형 변수에만 사용가능
- 피연산자의 각 자리(2진수) 오른쪽 또는 왼쪽으로 이동
- 곱셈과 나눗셈을 할때 연산속도가 좋음으로 사용한다
- << : x<<n은 x*2^n
- >> : x>>n은 x/2^n
- 양수이면 빈곳을 0으로 채우고 음수이면 빈곳을 1로 채운다 */
System.out.println(10<<18);
/* 9. 비교연산자
- 주개의 변수 또는 리터럴을 비교하는데 사용되는 연산자
- 주로 조건문과 반복문의 조건식에 사용되며 연산 결과가 true, false
*삼항연산자와 유사
- 이항 연산자 //단, 양쪽의 타입이 무조건 같아야한다
10. 대소비교연산자(<> <= >=)
- 기본형 중에 boolean 형을 제외한 자료형에 사용할 수 있다
11. 등가비교연산자(==, !=)
- 모든 자료형에 사용할 수 있다
- 기본형의 경우, 저장된 값을 비교
- 참조형의 경우, 저장된 주소를 비교
수식 연산결과
x < y x가 y보다 작을때 true, 그 외에는 false
x > y x가 y보다 클 때 true, 그 외에는 false
x <= y x가 y보다 작거나 같을때 true, 그 외에는 false
x >= y x가 y보다 크거나 같을때 true, 그 외에는 false
x == y x와 y가 같을때 true, 그 외에는 false
x != y x와 y가 다을때 true, 그 외에는 false */
//[예제]
//15를 저장할 수 있는 변수를 선언 및 초기화 하세요
int da= 15;
//15.000001를 저장할 수 있는 변수를 선언 및 초기화 하세요
float db= 15.000001f;
//da와 db가 같은지 결과를 출력하세요
System.out.println(da==db);
System.out.println(0.1==0.1f); //double은 0.1의 근사치(2^n), float는 0.1
System.out.println('A'==65); //연산을 위해 타입을 맞춰야함. int로 전환(A=65)된 후 연산
/* 12. 비트 연산자 &, |, ^ 비트 -> 2진수로 전환 먼저
- 이진 비트 연산을 수행한다
- float와 double을 제외한 모든 기본형에서 사용가능
&(and 연산) : 피연산자 양쪽 모두 1일때만 1
|(or) : 피연산자 중 한쪽의 값이 1이면 1이다
^(X OR) : 피연산자의 값이 서로 다르면 1이다
3 00000011
5 00000101
^ 00000110 -> 6
| 00000111 -> 7
& 00000001 -> 1
회로 연산에서 사용됨 */
System.out.println(3^5);
/* 13. 논리(=>boolean의 결과를 받거나 연산에 사용된다)연산자(&&, ||)
- 피연산자로 boolean형 또는 boolean형 값을 결과로 하는 조건식만 허용한다
- 조건문과 반복문에서 조건식 간의 결합에 이용한다.
&&(and 결합) - 피연산자 양쪽모두 true 일때만 true 반환 <- 연산 순서가 * 같다
||(or 결합) - 피연산자 중 어느 한 쪽이라도 true이면 true <- 연산 순서가 + 같다
//정규식을 판단하기 위한 기준 */
//문제1. 문자 하나를 저장할 수 있는 변수 dc를 선언하시오
char dc;
//문제2. dc 초기값 으로 K 저장
dc = 'K';
//문제3. dc가 영어 대문자일때 true가 출력되도록 만들어주세요
System.out.println('A'<= dc && dc<='Z');
//문제4. dc가 영어 소문자일때 true가 출력되도록 만들어주세요
System.out.println('a'<= dc && dc<='z');
//문제5. dc가 영문자인지 판단하는 조건식을 만들어주세요
System.out.println('A'<= dc && dc<='Z' || 'a'<= dc && dc<='z');
//문제6. dc가 숫자'형'인지 판단하는 조건식을 만들어주세요
System.out.println('0'<= dc && dc<='9');
/* 14. 삼항연산자
- 세개의 피연산자를 필요로 한다
- 삼항 연산자의 조건식에는 연산결과가 true 또는 false인 식이 사용된다
- 기본구조
조건식 ? 식1(true용) : 식2(false용) */
int x1 = 10;
int y1 = -10;
int absX = x1>0 ? x1 : -x1;
int absY = y1>0 ? y1 : -y1; //앱솔루트, 절대값, 어떻게 나오든 양수로 나오도록 하는 활용
System.out.println(absX +"," + absY);
/* 15. 대입연산자(=, op=)
- 변수에 값 또는 수식의 연산 결과를 '저장'하는데 사용한다
- 연산우선순위가 가장 낮다
*/
//문제1. 10의 값을 젖아할 수 있는 변수 ea를 선언 및 초기화 해주세요
int ea = 10;
//문제2. ea의 값에 20을 더한 값을 ea에 저장해주세요
ea = ea + 20;
ea +=20; //내 자신에게 연산하여 내 자신에게 저장한다
ea *=2; //내 자신에게 연산하여 내 자신에게 저장한다
ea /=10; //내 자신에게 연산하여 내 자신에게 저장한다
ea <<=3; //2^3
System.out.println(ea);
//문제3. 소수점 넷째자리에서 반올림하여 셋째짜리까지 표현해주세요
float fff = 3.141592f;
// fff *=1000; //3141.592f
// fff += 0.5; //3142.592f
// int a = (int)fff;
// float b1 = a;
// b1 /= 1000;
// System.out.println(b1);
// VS.
// fff *=1000; //3141.592f
// fff += 0.5; //3142.592f
// (int) //3142
// 1000f //3.142
fff = (int)(fff*1000+0.5)/1000f;
System.out.println(fff);
//문제4.
//1) 523.845636를 변수 dddd에 저장
float dddd=523.845636f;
//2) dddd를 소수점 5자리에서 반올림하여 4째자리까지 표현
dddd = (int)(dddd*10000+0.5)/10000f; //(int)(double)/(float)
System.out.println(dddd);
double dddd1=523.845636;
//2) dddd를 소수점 5자리에서 반올림하여 4째자리까지 표현
dddd1 = (int)(dddd1*10000+0.5)/10000.0;
System.out.println(dddd1);
double dddd2=523.845636;
//2) dddd를 소수점 5자리에서 반올림하여 4째자리까지 표현
dddd2 = (int)(dddd2*10000+0.5)/10000.0;
System.out.println((float)dddd2);
}
}
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
4일차) 관계형 데이터베이스 구성 예 20180530 pm (0) | 2018.06.02 |
---|---|
5일차) 연산자 정리 예제 _20180531 am (0) | 2018.06.01 |
4일차) 기본 연산자 및 연산 순위 20180531 am (0) | 2018.05.31 |
4일차) 변수 정리 예제 _20180531 am (0) | 2018.05.31 |
3일차) 데이터 모델링으로 가기위한 요구사항 분석 _20180530 pm (0) | 2018.05.30 |
댓글