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
}
}
반응형