Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- if조건절
- sort함수
- C++
- 형변환
- java
- relif
- ISTQB
- happen to
- metascore
- I'm glad
- keep -ing
- might have p.p
- html
- UE4
- 제5인격
- end up ing
- 변수
- by any chance
- by until
- gameQA
- continue to
- 명절 표현
- 명세기반테스트
- 게임QA
- counldn't have
- for ing
- know
- Realtime Rendering
- it's a good thing
- 코로나19
Archives
- Today
- Total
Records rather than Memories
암시적 형 변환 본문
1
|
01000011 01001000 00000000 00000000
|
cs |
float 타입의 정수 200.0의 bit 값
- 다음과 같이 내부적으로 수를 다룰 때 전혀 다른 bit 값을 가지게 된다.
- 이러한 이야기를 하는 이유는 형식이 다른 데이터를의 연산을 하려는 경우가 있기 때문이다.
따라서 형식이 다른 데이터를 연산하려면 한쪽의 데이터 타입을 전환(Convesrion)해야한다.
- 자바는 이러한 전환을 자동으로 처리해주는데 이것을 형 변환(implicit Conversion)이라고 한다.
1
|
double a = 3.0F;
|
cs |
다음의 예제를 보자.
변수는 double, 상수는 float 서로 다른 데이터 타입에 적용하면 에러가 발생해야하는데 그렇지 않다.
그 이유는 3.0이라는 상수를 a라는 변수에 대입하는 순간 F가 붙어 있을 지라도 double로 자동 형변환 해주기 때문이다.
* 타입을 변경해도 정보의 손실이 일어나지 않는 경우 자동 형 변환.
1
2
|
float a = 3.0;
float a = 3.0F;
|
cs |
상수에 아무 것도 붙어있지 않기 때문에 자동으로 double형으로 담긴다.
따라서 double형의 데이터를 float 변수에 담으려는 시도가 되기 때문에 오류가 발생한다.
* 자동 형변환의 기준
- 표현범위가 좁은 데이터 타입 -> 넓은 데이터 타입
* 데이터 타입의 범위
byte - short - int - long - float - double
1
2
3
|
int a = 3;
float b = 1.0F;
double c = a + b;
|
cs |
1. a는 float로 형변환 되고 a+b의 값이 4.0F가된다.
2. c는 double형이므로 한번 더 형변환 되어 4.0double형으로 c에 담긴다.
'Software > JAVA' 카테고리의 다른 글
연산자 (0) | 2019.10.02 |
---|---|
명시적 형 변환 (0) | 2019.10.02 |
[java] Data type (0) | 2019.10.01 |
[java] 문자열 (0) | 2019.10.01 |
[java] 정수와 실수 (0) | 2019.10.01 |
Comments