[자바/JAVA] 변수형변환이란? 형변환을 해보자!

박정현·2023년 7월 16일
0
post-thumbnail

데이터타입을 다른 데이터 타입으로 변환하는 것을 말한다.

1. 형변환

  • 같은 자료형끼리의 연산(+,-,*,%) 결과는 같은 자료형
  • int*int =int //인트형 곱하기 인트형은 인트형!
    • int i =10*10;
  • double*double = double →더블형 곱하기 더블형은 더블형

2. 자동형 타입 변환

자동타입변환은 프로그램 실행 도중에 자동으로 타입 변환되는 것을 말한다.

  • 작은 형에서 큰 형으로 변환할 때 자동으로 형변환
  • 데이터 손상이 없음
  • int = double; ⇒ double = double; double형이 더 크므로 자동 형변환(auto casting)
  • 컴파일러에 의해 원래의 타입보다 큰 타입으로 자동 변환
  • int형 아래 연산 시 자동으로 int형으로 형변환(short, byte, char, boolean) byte(10)+10
    • 정수타입 변수가 산술 연산식에서 피연사자로 사용되면 int타입으로 자동타입변환
    • 만약 int타입보다 크다면 long 타입으로 변환
    byte b2=10;
    byte b3=20;
    
    byte b3=b2+b3 //에러 발생* 자동으로 b2, b3이 int형으로 바뀌기 때문
    int b3=b2+b3 // 따라서 int형으로 바꿔줘야 함

    
  • 작은형+큰형 → 큰형+큰형 : 자동으로 둘 다 큰 형으로 바뀜

3. 강제 타입 변환

✅ (변환될 자료형)data; Ex) int i =10; → byte i로 바꾸고 싶으면 (byte) i;
  • 강제 형변환(명시적 형변환): 프로그래머가 강제로 함
  • 큰 자료형에서 작은 자료형으로 변환할 때 사용
  • 강제 타입 변환은 데이터 손상 발생이 발생한다.
    • int 10과 byte 10을 2진수로 바꾸면 다음과 같다.
      • int 00000000 00000000 00000000 00001010
      • byte 00001010
    • 2진수로 바꾸면 인트형10과 바이트10이 다르다는 것을 알 수 있음
    • 따라서 인트형을 바이트로 바꾸면 원래 데이터가 손상됨
  • 문자열을 기본 타입으로 강제 타입 변환 프로그램에서 문자열을 기본 타입으로 변환하는 경우 多 ✅ 타입 변수명 = 타입.parseByte(String변수명);
profile
개발을 개발괴발하지 않기 위한 노력

4개의 댓글

comment-user-thumbnail
2023년 7월 16일

잘봤습니다.

1개의 답글
comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

1개의 답글