C 언어 데이터 형식 변환 인 스 턴 스 코드

데이터 형식 변환 은 데이터(변수,표현 식 의 결과)를 한 유형 에서 다른 유형 으로 변환 하 는 것 입 니 다.예 를 들 어 소 수 를 저장 하기 위해 int 형식의 변 수 를 double 형식 으로 변환 할 수 있 습 니 다.
데이터 형식 변환 의 일반 형식 은:
(type_name) expression
type_name 은 변환 할 데이터 형식 이 고 expression 은 표현 식 입 니 다.예 를 들 면:

(float) a; // a     
(int)(x+y); // x+y        
(float) 100; //          
[예시]정 수 를 부동 소수점 으로 변환 합 니 다.

#include <stdio.h>
int main(){
 int sum = 17, count = 5;
 double mean;
 mean = (double) sum / count;
 printf("Value of mean : %f
", mean); return 0; }
실행 결과:
Value of mean : 3.400000
주의해 야 할 것 은 형식 변환 연산 자()의 우선 순위 가/보다 높 고(double)sum/count 는 먼저 sum 을 double 형식 으로 바 꾼 다음 에 나 누 기 연산 을 합 니 다.쓰기(double)(sum/count)를 사용 하면 실행 결 과 는 3.000000 입 니 다.
프로그래머 의 명시 적 전환 을 강제 유형 전환 이 라 고 한다.강제 형식 변환 을 제외 하고 서로 다른 데이터 형식의 혼합 연산 에서 컴 파일 러 도 데이터 형식 변환 을 암시 적 으로 진행 하여 자동 형식 변환 이 라 고 한다.
자동 형식 변환 은 다음 규칙 을 따 릅 니 다:
1.연산 에 참여 하 는 데이터 형식 이 다 르 면 먼저 같은 유형 으로 전환 한 다음 에 연산 을 한다.
2.데이터 길이 가 증가 하 는 방향 으로 전환 하여 정밀도 가 떨 어 지지 않도록 한다.예 를 들 어 int 형 과 log 형 연산 을 할 때 int 양 을 log 형 으로 바 꾼 다음 에 연산 을 한다.
3.모든 부동 소수점 연산 은 이중 정밀도 로 진행 되 며,float 단일 정밀도 연산 표현 식 만 포함 하 더 라 도 먼저 double 형 으로 변환 한 다음 에 연산 해 야 합 니 다.
4.char 형 과 short 형 이 연산 에 참여 할 때 반드시 int 형 으로 전환 해 야 한다.
5.할당 연산 에서 할당 번호 양쪽 의 데이터 형식 이 다 르 면 오른쪽 표현 식 의 형식 을 왼쪽 변수의 형식 으로 변환 해 야 합 니 다.오른쪽 표현 식 의 데이터 형식 길이 가 왼쪽 보다 길 면 일부 데 이 터 를 잃 어 버 려 정밀도 가 떨 어 집 니 다.
다음 그림 은 형식 자동 변환 규칙 을 표시 합 니 다.

[예시]자동 데이터 형식 변환.

#include<stdio.h>
int main(){
 float PI=3.14159;
 int s1, r=5;
 double s2;
 s1 = r*r*PI;
 s2 = r*r*PI;
 printf("s1=%d, s2=%f
", s1, s2); return 0; }
실행 결과:
s1=78, s2=78.539753
표현 식 r*r*PI 를 계산 할 때 r 와 PI 는 모두 double 형식 으로 바 뀌 었 고 표현 식 의 결과 도 double 형식 으로 바 뀌 었 습 니 다.그러나 s1 은 정형 이기 때문에 할당 연산 의 결 과 는 여전히 정형 으로 소수 부분 을 버 렸 다.
주의 하 는 것 은 소수 부분 을 직접 버 리 는 것 이지 반올림 에 따라 앞으로 반올림 하 는 것 이 아니다.
강제 변환 이 든 자동 변환 이 든 이번 연산 의 수 요 를 위해 변수의 데이터 길 이 를 임시 적 으로 변환 할 뿐 데이터 설명 을 바 꾸 지 않 을 때 이 변수 에 대한 정의 유형 을 바 꾸 지 않 습 니 다.
아래 의 예 를 보십시오.

#include<stdio.h>
int main(){
 float f=5.75;
 printf("(int)f=%d, f=%f
",(int)f, f); return 0; }
실행 결과:
(int)f=5, f=5.750000
이상 C 언어 데이터 형식의 변환 인 스 턴 스 상세 설명,학습 에 도움 이 되 기 를 바 랍 니 다. C 언어 기초 지식의 동창.

좋은 웹페이지 즐겨찾기