basicJAVA/2. 연산자

201008 Operation_02

unemo 2020. 10. 8. 16:08
반응형
/*
		 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