JAVA

양의 정수, 음수, 실수, 자료형

청춘고양이 2022. 6. 3. 00:11
반응형

양의 정수

package Ch02;

public class C01양의정수 {

	public static void main(String[] args) {
	
		//2진수        -> 10진수
		//00100010    -> 2+32
		//00011010    -> 2+8+16
		//01110101    -> 1+4+16+32+64
		 
//		System.out.println("34");
//		System.out.println("26");
//		System.out.println("59");

		//10진수       -> 2진수
		//45          -> 00101101
		//128         -> 10000000
		//193         -> 11000001
		
		System.out.printf("10진수 : %d\n", 173);    //10 진수
		System.out.printf("10진수 : %d\n", 0255);   //0 접두사: 8진수를 의미
		System.out.printf("10진수 : %d\n", 0xAD);  //0x접두사: 16진수를 의미
		
//		System.out.println("00101101");
//		System.out.println("10000000");
//		System.out.println("11000001");
		
		System.out.printf("8진수 : %o\n", 173);    //10 진수
		System.out.printf("8진수 : %o\n", 0255);   //0 접두사: 8진수를 의미
		System.out.printf("8진수 : %o\n", 0xAD);   //0x접두사: 16진수를 의미

		System.out.printf("16진수 : %X\n", 173);    //10 진수
		System.out.printf("16진수 : %X\n", 0255);   //0 접두사: 8진수를 의미
		System.out.printf("16진수 : %x\n", 0xAD);   //0x접두사: 16진수를 의미 대소문자 구분 가능
		
		System.out.printf("정수 : %d\n", 0b1111);   //0b 접두사 : 바이너리 전달
	}

}

음수

package Ch02;

public class C02음수 {

	public static void main(String[] args) {
		
		
//				컴퓨터는 가산회로에 의한 가산처리가 가능하다 ? O
//				컴퓨터는 덧셈연산을 할수 있는 회로가 있다(가산기) ? O
//
//				컴퓨터는 감산회로에 의한 감산처리가 가능하다? X
//				컴퓨터는 감산연산을 할수 있는 회로가 있다(감산기)? X
//
//				컴퓨터는 뺄샘과 동일한 결과를 만들기 위해서 '보수' 개념을 이용한다
//
//				5-5 = 0
//
//				00000101 = 5
//				11111010 = 1의보수 
//
//				11111011 = -5(1의보수 + 마지막비트열에 1을 가산)
//				--------------
//				00000000 = 0
//
//
//				00001010 = 10
//				11110110 = -10
//
//				01011001 = 89
//				10100111 = -89
//				---------------
//				00000001 = 1
//				00000010 = 2
//				00000011 = 3
//				...
//				01111111 = 127
//
//				10000000 = -128
//				10000001 = -128+1 = -127
//				10000010 = -128+2 = -126
//				10000011 = -128+3 = -125
//				..
//				11111111 = -128+127 = -1
		//1		1	1	1	1	1	1	1
		//128	64	32	16	8	4	2	1
		//10진수		-> 		2진수
		//14		-> 	00001110
		//-14		->  11110010
		//22		->	00010110
		//-22		->	11101010
		//56		->	00111000
		//-56		->	11001000
		//111		->	01101111  
		//-111		->	10010001
		
		//2진수		->		10진수
		//10001010	-> 	-128+4+2
		//10110101	->	-128+32+16+4+1
		//11000011	->	-128+64+2+1
		//11100101	->	-128+64+32+4+1
		
		
		
		
		

	}

}

실수

package Ch02;

public class C03실수 {

	public static void main(String[] args) {
		// 유리수와 무리수의 통칭
		// 소숫점이하를 가지는 수 
		// 실수의 범위는 무한대에 가깝다
		
		// 소수점의 길이에 대한 범위가 무한대에 가깝기 때문에 
		// 이를 저장하기란 불가능 하다
		// 해서 실수저장공간마다 소수점을 시작으로 어디까지만 저장하자 라고 
		// 약속이 지정이 되어있다.
		// 그 이상 넘어가는 자리는 버려지게 되고 해서 이런 이유로 실수를 반복적으로 
		// 연산하게 되면 오차가 발생할 수 밖에 없다..
		// 현재는 소수점의 위치를 지정하기 위한 방식으로 부동소수점방식을 사용한다
		// 부동소수점 방식은 실수값에 맞게 소수점위치가 그때그때마다 변동된다.
		
		

	}

}

자료형

package Ch02;

public class C04자료형 {

	public static void main(String[] args) {
		// = (대입연산자)
		//공간=값
		// 대입연산자 오른쪽부터 먼저처리를 한다(우선순위)
		
		int num1; //4byte 정수공간형성후 num1이름 부여
		num1 = 10; //10값을 상수풀에 선 저장한 후 num1공간에 대입(복사)
		int num2 = 4; //4값을 상수풀에 선 저장한 후 4byte정수공간 num2에 초기화
		int num3 = num1 + num2; //num1의 값+num2의 값을 num3공간에 초기화
		System.out.println(num3); //num3의 값을 출력
		
		

	}

}
package Ch02;

public class C05자료형 {

	public static void main(String[] args) {
		//------------------
		// 정수 자료형
		//------------------
		//int (4byte정수)
//		int var1=0b1011; //2진수
//		int var2=0206;   //8진수
//		int var3=365;    //10진수
//		int var4=0xB3;   //16진수
//		
//		System.out.println("var1 : " + var1); //문자열과 숫자를 +하면 단순 연결
//		System.out.println("var2 : " + var2);
//		System.out.println("var3 : " + var3);
//		System.out.println("var4 : " + var4);
		
		//byte(1byte)
//		byte var1 = -128;
//		byte var2 = -30;
//		byte var3 = 30;
//		byte var4 = 127;
		//byte var5 =128 불가능 8비트의 최댓값이 127이기 때문, byte의 정수 허용 범위를 초과
		//byte var6 = -129 불가능 8비트의 최솟값이 -128이기 때문 
		// 정수 호용 범위는 -128~127
		
		//int는 약 -21억~ +21억까지 저장 가능
		
		//long(8byte)
//		long var1=10; // 기본적으로 int 값으로 저장
//		long var2=20L; // L: 리터럴접미사(리터럴상수값 뒤에 붙이는 기호,L,l:long, f,F:float)L은 리터럴 상수의 공간에 8byte인 long을 사용한다는 의미
//		long var3=10000000000;  // 기본적으로 int 값으로 저장되기 때문에 int로 저장하면 +-21억 까지 저장가능하기 때문에 에러가 뜸
//		long var4=10000000000L; 
		
		//-------------------
		//실수 자료형
		//-------------------
		//float : 4byte 실수 저장(소수점이하 6-9자리까지)
		//double: 8byte 실수 저장(소수점이하 16-18자리까지)
		
		//정밀도 테스트
//		float var1 = 0.1111111111111111111F; //F,f접미사 : 리터럴값을 float형으로 저장
//		double var2 = 0.1111111111111111111; //리터럴실수값은 실수기본자료형 double 저장
//		
//		System.out.println("var1 : " + var1);
//		System.out.println("var2 : " + var2);
//		
//		//지수형 
//		double var3 = 3e6; //3*10^6, 저장자료형은 double
//		double var4 = 3e6F; //3*10^6, 저장자료형은 float
//		double var5 = 2e-3; //2*10-3(10의 마이너스 3승), 저장자료형은 double;
//		
//		System.out.println("var3 : " + var3);
//		System.out.println("var4 : " + var4);
//		System.out.println("var5 : " + var5);
//		
		//-------------------
		//단일 문자
		//-------------------
		//char 자료형 : 2byte 정수 저장
		
//		char ch1='A';
//		char ch2='가';
//		//문자형 출력
//		System.out.println(ch1);
//		System.out.println(ch2);
//		//강제형변환(정수로)
//		System.out.println((int)ch1);
//		System.out.println((int)ch2);
//		//강제형변환(char)
//		System.out.println((char)4444);
//		System.out.println((char)3000);
	
		//-------------------
	    //문자열
	    //-------------------
		//String : 클래스자료형을 문자열저장
		
//		String name = "홍길동"; //클래스자료형으로 변수를 만들게 되면 
//		                      //실제 데이터값이 저장되는 것이 아니라
//		                      //실제 데이터값이 있는 위치정보(참조값, 주소값)가 저장
//		String job = "프로그래머"; 
//		System.out.println(name);
//		System.out.println(job);
		
//		String var = "나의직업은 \"개발자\" 입니다.";
		
		//-------------------
	    //Boolean
	    //-------------------
		//boolean : true/false 저장, 1byte size
		
		boolean flag = true; //false;
		flag=false;
		
//		test
		
	
	
	}

}
반응형