신입개발자

연산자1 본문

프로그래밍 언어/자바

연산자1

dks_a 2022. 1. 7. 01:08
public class 연산자1 {

	public static void main(String[] args) {
		
		// 자바 산술 연산자 
		System.out.println(7 + 3); // 10
		System.out.println(7 - 3); // 4
		System.out.println(7 * 3); // 21
		System.out.println(7 / 3); // 2 몫
		System.out.println(7 / 3.); // 2.3333333333333335
		System.out.println(7 % 3);  // 1, 모듈러 연산자(나머지)
		System.out.println();
		
		// 증감연산자
		int i =10, j=20;
		System.out.println(i-- + ++j); // 31 = 10(후위연산자) + 21
		i = 10; j =20;
		System.out.println(--i + j++); // 29 = 9(전위연산자) + 20
		System.out.println();
		
		//10진수를 다른 진수(문자열)로 변환
		System.out.println(Integer.toBinaryString(10)); // 1010, 2진수
		System.out.println(Integer.toOctalString(10)); // 12(8의1제곱 + 8의0제곱 2개), 8진수
		System.out.println(Integer.toHexString(10)); // a(16의 0제곱), 16진수(0~9 a~f)
		System.out.println();
		
		//다른진수(문자열)을 10진수로 변환
		System.out.println(Integer.parseInt("1010", 2)); // 10 
		System.out.println(Integer.parseInt("12", 8)); // 10 
		System.out.println(Integer.parseInt("A", 16)); // 10 a/A 상관없음
		System.out.println();
		
		//다른진수(숫자)을 직접 이용하기
		System.out.println(10); // 10, 10진수
		System.out.println(0b1010); // 10, 2진수 (b는 바이너리임)
		System.out.println(012); // 10, 8진수
		System.out.println(0xA); // 10, 16진수
		System.out.println();
		
		//비트 논리 연산자
		i =10; j=12;
		System.out.printf("i = \t%32s\n",Integer.toBinaryString(i)); // 1010, 2진수
		System.out.printf("j = \t%32s\n",Integer.toBinaryString(j)); // 1100, 2진수
		System.out.printf("i & j = %32s, %d\n",Integer.toBinaryString(i & j), i & j);
		//1000, (10진수로) 8, 비트 AND 연산자
		/*
		 * 1010
		 * 1100		 
		 * 1000 (둘다 1일 때 1)
		 * */
		System.out.printf("i | j = %32s, %d\n",Integer.toBinaryString(i | j), i | j); 
		//1110, (10진수로) 14, 비트 OR 연산자
		/*
		 * 1010
		 * 1100		 
		 * 1110 (둘 다 혹은 둘 중 하나 1일 때 1)
		 * */
		System.out.printf("i ^ j = %32s, %d\n",Integer.toBinaryString(i ^ j), i ^ j); 
		//110, (10진수로) 6, 비트 XOR 연산자(배타적)
		/*
		 * 1010
		 * 1100		 
		 * 0110 (서로 다를 때 1)
		 * */
		System.out.printf("~i = \t%32s, %d\n",Integer.toBinaryString(~i), ~i); 
		// '1'1111111111111111111111111110101, 10진수로 -11, 비트 NOT 연산자 
		// 맨앞 '최상위 비트' MSB, Most Significant Bit 는 부호 비트 : 0은 양수 1은 음수
		// 양수는 1의 위치에 2진법 적용, 음수는 0의 위치에 2진법을 적용한 뒤 1더하여 음수처리
		//1111111111111111111111111111 0101(-((2의3 + 2의1) +1))
	}

}

'프로그래밍 언어 > 자바' 카테고리의 다른 글

연산자3  (0) 2022.05.01
연산자2  (0) 2022.05.01
연산에서의 타입 변환  (0) 2022.01.07
타입변환  (0) 2022.01.03
자료형  (0) 2022.01.03
Comments