데이터가 큰 바이트에서 작은 바이트로 변환할 때는 단순히 상위 바이트를 삭제하여 저장한다.
데이터가 작은 바이트에서 큰 바이트로 변활할 때는 작은 바이트의 숫자를 유지한다. 즉, 작은 데이터가 -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 |
댓글