[Java]연산자(2)

2023. 5. 25. 22:25·Programming
반응형

형변환 연산자

  • 형변환 = 변수 또는 상수의 타입을 다른 타입으로 변환

      # (타입)피연산자
    
      double d = 85.4;
      int score = (int)d;
      int score = (int)85.4;
      int score = 85; // d의 값은 85.4 그대로(d를 먼저 읽고 형변환)
  • 예시

| 변환 | 수식 | 결과 |
| --- | --- | --- |
| int → char | (char)65 | ‘A’ |
| char → int  | (int)’A’ | 65 |
| float → int |  |  |
| int → float |  |  |
- 유니코드 문자표(기본: 6만자 현재 100만자)에 의해 변경됨
    - A → 65
- 숫자 및 영문자는 연속적으로 존재
  • 예시2: 정수 - 실수
| 변환 | 수식 | 결과 |
| --- | --- | --- |
| int → char | (char)65 | ‘A’ |
| char → int | (int)’A’ | 65 |
| float → int | (int)1.6f | 1 |
| int → float | (float)10 | 10.0f  |
- 저장할 수 없는 부분은 버리게 됨 (1.6f → 1)

자동 형변환

float f = 1234; // int타입 값을 float타입에 저장
float f = (float)1234; // 원래는 형변환이 필요하지만 컴파일러가 자동으로 형변환

int i = 3.14f; // 에러 (값 손실이 일어나기 때문)
int i = (int)3.14f // 3으로 값손실 방생
  • byte(1byte) → int(4byte)

    • byte b = 10;
    • int i = b;
    • 생략 가능
  • int → byte

    • int i2 = 300;
    • byte b2 = (byte)i2;
    • 생략 불가
  • 대소관계

    • byte(1) → short, char(2) → int(4) → long(8) → float(4) → double(8)
  • 예시

      byte b = 100; // (O) byte 타입 범위 내(-128~127) 대입
      // 위의 사례는 byte 범위 내이기 때문에 값손실이 없어 자동 형변환
      // 리터럴(상수)이기 때문에 100이라는 것을 명확히 알 수 있음
      byte b = (byte)100; // (O). byte 타입으로 형변환하여 대입
    
      int i = 100;
      byte b = i; // (X) int타입을 byte타입에 대입
      // i는 변수이기 때문에 값의 범위를 확신할 수 없음
      byte b = (byte)i; // (O) byte 타입으로 형변환하여 대입
    
      byte b = 1000; // (X) byte 값 범위 벗어남
      byte b = (byte)1000; // (O) 하지만 값손실 발생으로 b에 -24 저장

사칙 연산자

  • + - * /

  • 같은 타입끼리만 계산 가능

      (int) 10 / (int) 4 = (int) 2 // 2.5 중 소수점 이하 버림
      (int) 10 / (float) 4.0f = (float) 2.5f // 값 손실이 없는 쪽으로 타입이 변환됨
저작자표시 비영리 동일조건 (새창열림)

'Programming' 카테고리의 다른 글

[Python]pyinstaller FileNotFoundError: [Errno 2] No such file or directory 에러 해결  (1) 2023.09.12
[Java]연산자(3)  (1) 2023.05.26
[Java]연산자(1)  (0) 2023.05.25
[Java]변수(2)  (0) 2023.05.23
[Java]변수  (0) 2023.05.22
'Programming' 카테고리의 다른 글
  • [Python]pyinstaller FileNotFoundError: [Errno 2] No such file or directory 에러 해결
  • [Java]연산자(3)
  • [Java]연산자(1)
  • [Java]변수(2)
Canary_카나리아
Canary_카나리아
어쩌다 데브옵스 엔지니어가 된 문과생의 기록용 블로그
    반응형
  • Canary_카나리아
    release: canary
    Canary_카나리아
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • DevOps (67)
      • Programming (28)
      • Certifications (3)
      • ETC (20)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    terraform
    NCPassociate자격증
    개발자
    클라우드자격증
    kops사용법
    프로메테우스
    프로메테우스예제
    자바개념
    NCPprofessional자격증
    백엔드
    네이버클라우드자격증
    Prometheus
    ncp서비스
    spring
    제로베이스
    그라파나
    백엔드개발
    클라우드엔지니어자격증
    백엔드공부
    네이버클라우드서비스
    kops란
    백엔드스쿨
    argocd
    NCP자격증
    java개념
    그라파나예제
    한빛출판네트워크
    데브옵스엔지니어
    Grafana
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Canary_카나리아
[Java]연산자(2)
상단으로

티스토리툴바