부호 있는 정수 계열 형식에서 변환

부호 있는 정수가 정수 또는 부동 소수점 형식으로 변환될 때 결과 형식에서 표현할 수 있는 값인 경우는 값이 변경되지 않습니다.

부호 있는 정수를 더 큰 크기의 정수로 변환하는 경우 값은 부호 확장됩니다. 더 작은 크기의 정수로 변환한 경우에는 상위 비트가 잘립니다. 결과는 다음 예제와 같이 결과 형식을 사용하여 해석됩니다.

int i = -3;
unsigned short u;

u = i;
printf_s( "%hu\n", u );  // Prints 65533

컴파일러가 부호 있는 정수를 부동 소수점 형식으로 변환할 때 원래 값을 결과 형식에서 정확하게 표현할 수 없는 경우 결과는 다음으로 높거나 낮은 표현할 수 있는 값입니다.

(정수 및 부동 소수점 형식의 크기에 대한 자세한 내용은 기본 형식 스토리지를 참조하세요.)

다음 표에서는 부호 있는 정수 계열 형식으로부터의 변환을 요약하여 보여 줍니다. char 형식은 기본적으로 부호가 있다고 간주합니다. 컴파일 시간 옵션을 사용하여 char 형식의 기본값을 unsigned로 변경할 경우 이 표의 변환 대신 unsigned char 형식에 대한 부호 없는 정수 계열 형식에서 변환 표에 나와 있는 변환이 적용됩니다.

Microsoft 전용

Microsoft 컴파일러에서 intlong 은 고유하지만 같은 형식입니다. int 값의 변환은 long 의 변환과 동일하게 진행됩니다.

Microsoft 전용 종료

부호 있는 정수 계열 형식에서 변환표

시작 대상 메서드
char1 short 부호 확장
char long 부호 확장
char long long 부호 확장
char unsigned char 패턴 유지(상위 비트가 부호 비트로의 기능을 잃음)
char unsigned short short 으로 부호 확장, shortunsigned short 으로 변환
char unsigned long long 으로 부호 확장, longunsigned long 으로 변환
char unsigned long long long long 으로 부호 확장, long longunsigned long long 으로 변환
char float 정확히 float로 표시
char double 정확히 double로 표시
char long double 정확히 long double로 표시
short char 하위 바이트 유지
short long 부호 확장
short long long 부호 확장
short unsigned char 하위 바이트 유지
short unsigned short 비트 패턴 유지(상위 비트가 부호 비트로의 기능을 잃음)
short unsigned long long 으로 부호 확장, longunsigned long 으로 변환
short unsigned long long long long 으로 부호 확장, long longunsigned long long 으로 변환
short float 정확히 float로 표시
short double 정확히 double로 표시
short long double 정확히 long double로 표시
long char 하위 바이트 유지
long short 하위 단어 유지
long long long 부호 확장
long unsigned char 하위 바이트 유지
long unsigned short 하위 단어 유지
long unsigned long 비트 패턴 유지(상위 비트가 부호 비트로의 기능을 잃음)
long unsigned long long long long 으로 부호 확장, long longunsigned long long 으로 변환
long float float 로 나타냅니다. long 을 정확히 나타낼 수 없는 경우 일부 정밀도가 손실됩니다.
long double 정확히 double로 표시
long long double 정확히 long double로 표시
long long char 하위 바이트 유지
long long short 하위 단어 유지
long long long 하위 dword 유지
long long unsigned char 하위 바이트 유지
long long unsigned short 하위 단어 유지
long long unsigned long 하위 dword 유지
long long unsigned long long 비트 패턴 유지(상위 비트가 부호 비트로의 기능을 잃음)
long long float float 로 나타냅니다. long long 을 정확히 나타낼 수 없는 경우 일부 정밀도가 손실됩니다.
long long double double 로 나타냅니다. long longdouble 로 정확히 나타낼 수 없는 경우 일부 정밀도가 손실됩니다.
long long long double double 로 나타냅니다. long longdouble 로 정확히 나타낼 수 없는 경우 일부 정밀도가 손실됩니다.

1 모든 char 항목에서는 char 형식에 기본적으로 부호가 있다고 간주됩니다.

참조

할당 변환