본문 바로가기
Example 2018

testOperatorProject - 자동형변환, MAX_VALUE / MIN_VALUE

by ZEROMI 2018. 4. 8.
728x90

package cast.sample;


//형변환 테스트 기능 제공용

public class TypeCastingSample {

//자동형변환 테스트용 메소드

public void autoCasting(){

//큰 사이즈의 변수방에 작은 사이즈의 값이 대입될 때

double dValue = 123;  //double <= int

//같은 종류끼리만 대입 가능하므로, 

//자동으로 int 가 double 값으로 바뀜

System.out.println("dValue : " + dValue);

//자료형이 다른 값들이 계산될 때

//크기가 작은 자료형 값이 큰 자료형으로 바뀜

int num = 33;

double dnum = 75.4;

double result = num + dnum;

//int + double => double + double

System.out.println("result : " + result);

}

//강제형변환 테스트용 메소드

public void directCasting(){

//큰 자료형 값이 작은 크기의 자료형에 적용될 때

//직접 형변환을 명시해 주어야 함

int value = (int)45.7;

System.out.println("value : " + value);

//같은 종류끼리 계산할 수 있고,

//결과값의 자료형도 같은 타입이어야 함

int max = Integer.MAX_VALUE ;

//기본 자료형에 대한 클래스를 자바가 제공함

//이러한 클래스를 레퍼(Wrappe) 클래스 라고 함

System.out.println("max :" + max);

System.out.println("더하기 결과 : " +

(max + max));

long sum = (long)max + max;

System.out.println("sum : " + sum);

}

//자바에서의 byte, short 계산 결과 테스트용 메소드

public void byteShortC(){

byte b1 = Byte.MAX_VALUE;

byte b2 = Byte.MIN_VALUE;

byte b3 = (byte)(b1 + b2);

int num = b1 + b2;

System.out.println("b3 : " + b3 + ", num : " + num);

short s1 = Short.MAX_VALUE;

short s2 = Short.MIN_VALUE;

short s3 = (short)(s1 + s2); //결과 자료형이 int 임

int num2 = s1 + s2;

System.out.println("s3 : " + s3 + ", num2 : " + num2);

}

//문자(char) <-> 정수(int) 간 형변환 가능함

public void printUniCode(){

java.util.Scanner sc = new java.util.Scanner(System.in);

System.out.println("문자 하나 입력 : ");

char ch = sc.next().charAt(0);

int uniCode = ch;

System.out.println(ch + "의 유니코드 : " + uniCode);

}

//숫자를 입력받아 해당 코드의 문자를 출력시킴

//0~655355 (비어있는 코드도 있음)

public void uniCodeToCharactor(){

System.out.println("유니코드 입력 : ");

int code = new java.util.Scanner(System.in).nextInt();

System.out.println(code + " : " + (char)code);


}

public void printBitCount(){

System.out.println("정수를 하나 입력하시오.");

int a = new java.util.Scanner(System.in).nextInt();

//입력된 정수의 비트값 확인

printBit(a);

System.out.println(a+"의 2진수에 포함된 1의 갯수 : " + Integer.bitCount(a));

}

//int 정수의 메모리에 기록ㄱ된 비트값 출력용 메소드

public void printBit(int num){

System.out.println(num + "의 2진수 값 확인");

for(int k = 31; k >= 0; k--){

System.out.print(num >> k & 1);

}

System.out.println();

}

//변수는 값 1개만 기록함

//다른 값이 기록이 들어오면, 덮어쓰기함

public void testVariable(){

int num = 10;

System.out.println("num : " + num);

num = 33; //이전 값 덮어쓰기함

System.out.println("num : " + num);

//변수 공간의 기록값은 변경될 수 있음

//변수방에 기록된 초기값을 변경할 수 없게 하고 싶다면

final double PI = 3.14159;

//변수선언시 자료형 앞에 final을 붙이면

//변수에 기록된 초기값 변경 불가능이 된다

//항상 같은 값을 사용하는 변수 == 상수라고 함

System.out.println("PI = " + PI);

/* pi = 3.759;

System.out.println("pi = " + pi);*/

}

//문자열 +숫자+숫자

//숫자+숫자+문자열

public void testStringConcat(){

System.out.println("결과 1 : " + 7 + 9);

System.out.println(7+9+"결과 2 : ");

}

//정수는 최대값, 최소값 범위 초과시 오버플로우 됨

public void testOverflow(){

byte b = Byte.MAX_VALUE;

System.out.println("b : " + b);

byte b2 = (byte)(b+2);

System.out.println("b2 : " + b2);

}

}



728x90