무민이의 반반무많이

C언어 형 변환(자동 형 변환, 강제 형 변환) 본문

C/Basic

C언어 형 변환(자동 형 변환, 강제 형 변환)

M00min 2016.07.19 22:35

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)


형 변환이란 데이터 형식(Type)을 변환하는 것으로 자동 형 변환강제 형 변환으로 나누어 진다.


자동 형 변환

- 자동적으로 발생하는 형태의 변환으로 묵시적 형 변환이라고도 한다.

대입 연산에서의 자동 형 변환 : 대입 연산시, =의 왼쪽 값이 기준이 되고, 이항 연산자(=, +,-, *, /)는 양쪽 모두의 자료형과 결과까지 같아야 한다.

<소스 코드>

● Line 4 : 소수부의 손실 발생 (3.14 → 3)

● Line 5 : 값의 표현이 넓은 범위로 변환 (7  7.000000)

● Line 6 상위 비트 손실

(129는 char의 범위를 넘으므로, 4바이트인 int형으로 변환된 것. 앞의 1바이트인 char에 의해 3바이트 손실)


<실행 결과>


- 산술 연산 과정의 자동 형 변환 : 산술 연산 과정에서의 형 변환은 데이터 손실이 최소화되는 방향(범위가 큰쪽)으로 진행된다.

char int long float double long double

(long과 float의 크기는 4바이트로 같지만, 정수보다 실수의 표현범위가 더 크기 때문에 floag로 변환된다.)


강제 형 변환

- 프로그래머가 명시적으로 형 변환을 요청하는 형태의 변환으로 명시적 형 변환이라고도 한다.


<소스 코드>

● Line 4 ~ Line 5 : 정수형(int) 변수 선언 후 초기화

● Line 7 ~ Line 8 : 실수형(double) 변수 선언 후 초기화

● Line 7 : a / b의 결과인 0이 double형으로 자동 형변환 되어 0.000000이 된다.

● Line 8 : a를 double형으로 강제 형변환하여 10.000000이 되고, b도 a와 연산을 하면서 double로 자동 형변환 되어 10.000000 / 20.000000이 된다.

● Line 10 ~ Line 11 : 연산의 결과를 출력


<실행 결과>

'C > Basic' 카테고리의 다른 글

C언어 do~while문  (0) 2016.07.28
C언어 while문  (0) 2016.07.24
C언어 형 변환(자동 형 변환, 강제 형 변환)  (1) 2016.07.19
C언어 비트 연산자(Bit Operator)  (0) 2016.07.16
정수, 실수의 표현방식  (0) 2016.07.15
C언어 연산자의 우선순위와 결합성  (1) 2016.07.14
1 Comments
댓글쓰기 폼