'부호 확장'에 해당되는 글 1건
- 2009.05.06 [C언어] 부호 확장(Sign extension)
2009. 5. 6. 15:53
[C언어] 부호 확장(Sign extension)
2009. 5. 6. 15:53 in 공부합시다/C언어
결과는 다음과 같다.
int형 b에 같은 -1을 대입했는데 왜 결과 값은 다르게 나올까.
그 이유는 부호 확장에 있다.
int b = a 에서 a는 char 형이기 때문에, 묵시적인 형변환이 발생하게 되는데 이때, char형 데이터인 a를 바로 int형 데이터 b에 넣는 것이 아니라 a를 4바이트 크기로 확장을 하게 된다.
1바이트에서 4바이트로 확장을 하면서 나머지 빈 공간에는 음수면 1로 채우고 양수면 0으로 채우게 된다.
따라서 (signed) char 인 a변수는 앞에 1을 채워서 FFFFFFFF가 되고, unsigned char 인 c변수는 앞에 0을 채워서 FF가 되는 것이다.
'공부합시다 > C언어' 카테고리의 다른 글
strtok()를 이용한 문자열 단어 교체 프로그램 (0) | 2009.08.17 |
---|---|
[C언어] 구조체의 메모리 저장방식과 #pragma pack (0) | 2009.04.30 |
[C언어]좀 더 복잡한 함수 포인터 (0) | 2009.04.20 |
[C언어]Little Endian (0) | 2009.04.16 |
[C언어]함수 주소를 직접 입력하여 호출하기 (0) | 2009.04.16 |