웹개발 교육/Java

[29일] Java (5) - 연산자

ewok 2022. 9. 5. 16:43

산술, 비교(관계), 논리, 삼항, 대입, 1증감 연산자가 있고, 앞 서 배운 자바스크립트와 많은 부분이 동일하다.

 

System.out.println(5/3);	//1
System.out.println(5%3);	//2
		
System.out.println(3/5);	//0
System.out.println(3%5);	//3
		
System.out.println(3.0/5.0);  //0.6
System.out.println(3/5.0);	  //0.6
System.out.println(3.0/5);    //0.6
System.out.println(3/5.);     //0.6

정수형과 정수형을 연산하면 정수형으로만 값이 나온다. 값을 실수형으로 보고 싶으면 실수형이 하나라도 포함되어야 한다.

 

bit 연산자

비트곱, 비트합 연산자

//1)비트곱, 비트합 연산자
System.out.println(5&3);	//1
System.out.println(5|3);	//7
/*
	 2진수 : 0 1
	 8진수 : 0 1 2 3 4 5 6 7
	10진수 : 0 1 2 3 4 5 6 7 8 9
	16진수 : 0 1 2 3 4 5 6 7 8 9 A B C D E F
	
                             128 64 32 16 8 4 2 1
	10진수  5를 2진수로 변환 ->                  1 0 1
	10진수  3을 2진수로 변환 ->                    1 1
	10진수  9를 2진수로 변환 ->                1 0 0 1
	10진수 35를 2진수로 변환 ->           1  0 0 0 1 1
	
	     비트곱(AND연산)       비트합(OR연산)		        
	5 ->  00000101          00000101
	3 -> &00000011         |00000011
	     ---------         ---------
	      00000001          00000111
대응되는 비트가 모두 1이면 1을 반환  대응되는 비트 중에서 하나라도 1이면 1을 반환
*/

 

//2) 비트 부정 연산자 (비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산))
		System.out.println(~5);
		
		//5 -> 00000101
//			   11111010      
//			   00000110      -6. 11111010의 보수. 맨 앞 1은 부호표시. 1은 -

 

//3) shift 연산자

//3: 이동 bit 수
System.out.println(16<<3);  //16*2의 3제곱. 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산)
System.out.println(16>>3);  //16/2의 3제곱. 지정한 수만큼 비트들을 전부 왼쪽으로 이동시킴. (left shift 연산)
/*
  	16을 2진수로 변환      00010000           00010000
  	              <<3  10000000      >>3  00000010
*/