본문 바로가기
컴퓨터/C

다른 형의 변수 변환

by Begi 2021. 1. 16.
반응형

데이터가 큰 바이트에서 작은 바이트로 변환할 때는 단순히 상위 바이트를 삭제하여 저장한다.


데이터가 작은 바이트에서 큰 바이트로 변활할 때는 작은 바이트의 숫자를 유지한다. 즉, 작은 데이터가 -1 이면 큰 데이터도 -1이 된다. 즉, char에서 0xFF은 short에서 0xFFFF로 저장된다.


하지만, 큰 데이터가 unsigned 타입일 때 작은 데이터가 마이너스라면 마이너스 형태의 큰 데이터를 저장하고 표시는 플러스로 한다. 즉, -1을 unsigned short에 저장하면 0xFFFF이 저장된다. 0xFFFF는 signed short에서 -1이다. unsigned short에서는 65535가 된다.


char → short 변환

다음과 같은 코드에서 s에는 1이 저장된다.

char c=1;

short s;

s = c;

다음과 같은 코드에서 s에는 -1이 저장된다.

char c=-1;

short s;

s = c;

다음과 같은 코드에서 c에는 1이 저장된다.

char c;

short s=1;

c = s;


unsigned char → short 변환

다음과 같은 코드에서 s에는 255이 저장된다.

unsigned char b=255;

short s;

s = b;


char → unsigned short 변환

다음과 같은 코드에서 s에는 65535가 저장된다.

char c=-1;

short s;

s = c;


short  char 변화

다음과 같은 코드에서 c에는 1이 저장된다. 16비트인 s에서 상위바이트가 삭제되어 c에 저장된다.

char c;

short s=1;

c = s;

다음과 같은 코드에서 c에는 -1이 저장된다. 16비트인 s에서 상위바이트가 삭제되어 c에 저장된다.

char c;

short s=-1;

c = s;

다음과 같은 코드에서 c에는 -128이 저장된다. 16비트인 s에서 상위바이트가 삭제되어 c에 저장된다.

char c;

short s=128;

c = s;


short → unsigned char 변환

다음과 같은 코드에서 b에는 255가 저장된다. 16비트인 s에서 상위바이트가 삭제되어 b에 저장된다.

unsigned char b;

short s=-1;

b = s;



반응형

'컴퓨터 > C' 카테고리의 다른 글

C printf float 변수 포맷  (0) 2021.02.08
C 복소수 연산  (0) 2021.01.23
[C] ln log 함수  (0) 2020.12.29
C 언어 float 오차  (0) 2020.12.25
온라인 C 컴파일러  (0) 2020.12.25

댓글