/*
1. 증감연산자 (++, --)
- 증가연산자 (++) : 피연산자의 값을 1 증가시킨다
- 감소연산자 (--) : 피연산자의 값을 1 감소시킨다
*/
int i = 3;
i++;
++i; // i는 5가 되었다
//앞에쓰건 뒤에쓰건 무조건 1증가
char c = 'A';
c++;
//1을 더하라는게 아님 하나가 증가되는거
//단항연산자의 특징은 내 타입을 유지한다는 장점이있음
//단순히 +1을 더하는것과 다르다
System.out.println(c); //66이 아닌 B가 나온다
int aa = 10;
int bb = 20;
int cc = aa + ++bb;
//혼자쓰일때와 다르게 다른녀석이랑 있을때 ++이 붙으면
//++이 앞인지 뒤인지가 차이가있음
//원래는 단항연산이 먼저니까 bb의 ++먼저게산
//앞++ 나를 먼저 증가하고(bb=21) 값을 대입 (10+21)
System.out.println(cc);
//++이 뒤에나오면?
//int cc = aa + bb++;
//단항이 먼저지만
//후++ 값을 대입시켜놓고 (10+20) 나중에 내가 증가 (bb=21)
int a1 = 5;
int b1 = 15;
int c1 = ++a1 + ++b1 + a1++ + ++b1;
//a1= 7 b1=17 c1=6+16+6+17=45
System.out.println(a1);
System.out.println(b1);
System.out.println(c1);
//**주의 앞에서 앞++된거 뒤에 또 나오면 그 ++된값 유지해야함
//모든 연산은 왼>오
//부호연산자는 굳이? pass
/*
2. 비트전환 연산자 (~)
- 정수형과 char형에만 사용이 가능하다 (실수형X)
- 연산자 앞에 비트라는 말이 붙으면 무조건 2진수로 바꾸고 시작임
- 2진수로 변환하였을때 0은 1로 1은 0으로 바꾼다.
byte 타입 10을 > 2진수로 1010 > bit로 표현하면 8자리
00001010를 비트전환 연산자로 -10구해볼거임
~10을 하면 0은 1로, 1은 0으로
11110101 (10의 1의 보수) 1로시작하니까 최솟값에서 시작
-128+117(맨앞부호빼고 10진수로바꾸면)=-11
-11이니까 -10되려고 ~10+1 해주면
11110110(10의 2의보수) = -10 (이게 컴터가인지하는 -10)
10에 틸트를 붙이면 원래있던 숫자에서 부호바꾸고 -1해줌
~-10은 +10-1 = 9
10의 1의 보수는? ~하나 붙인것임 > -11
10의 2의 보수는? -10
-17의 1의 보수? ~16 (부호바꾸고 -1)
*/
byte i5 = 10;
int a5 = ~i5; //4byte미만이니까 intfh
System.out.println(a5); //-11 (1의 보수)
/*
3. 논리부정연산자
- boolean형에만 사용가능
- true 부정하면 false, false를 부정하면 true가 됨
- tv 전원 버튼과 같은 토글버튼을 구현할 때 사용함.
*/
//변수 power를 false의 값으로 초기화 하여라.
boolean power = false;
//power의 값을 부정하여 다시 power에 저장하여라
power = !power;
System.out.println(power);
//전의 상태를 부정해서 껏켯하는거임 (리모컨)
s
'학원수업_basicJAVA > 2. 연산자' 카테고리의 다른 글
201012 Operation_04 (0) | 2020.10.12 |
---|---|
201012 Operation_3(2) (0) | 2020.10.12 |
201008 Operation_03 (0) | 2020.10.08 |
201007 Operation_01 (0) | 2020.10.07 |