c언어 signed -> unsigned 형변환 질문 드립니다. ^^;
글쓴이: noeoqzotngo / 작성시간: 금, 2015/10/16 - 8:28오후
#include
int main (void) {
int a = -100;
printf("%d\n", (unsigned int)a); // -100, signed int -> unsigned int
printf("%d\n", *((unsigned int *)&a)); // -100, pointer to signed int -> pointer to unsinged int
return 0;
}
(gcc test.c -pedantic -std=c99)
안녕하세요. 햇깔리는 게 있어서 질문을 드리고자 합니다. ^^;
저는 위의 프로그램의 형변환 부분에서 Type punning이 발생하여 -100이라는 정수의 비트열을 unsigned int형으로 접근하여 해석할줄 알고 음의 정수가 출력되지 않으리라 생각햇습니다. 그런데 그냥 -100이 출력이 되어서 어떻게 형변환이 되는 것인지 햇깔리더군요.
혹시 왜 그러한 것인지 아신다면 답변 부탁드리겠습니다 ^^;
Forums:
printf() 를 찾아보면...
unsigned 는 %u 로 화면에 출력해야 할겁니다.
printf()
http://www.cplusplus.com/reference/cstdio/printf/
printf unsigned 데이터형
http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=printf+unsigned+%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%98%95
printf 데이터형
http://search.naver.com/search.naver?ie=utf8&sm=stp_hty&where=se&query=printf+%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%98%95
printf
http://www.google.co.kr/search?hl=ko&source=hp&biw=&bih=&q=printf+&gbv=2&oq=printf+&gs_l=heirloom-hp.3...0.0.0.18.0.0.0.0.0.0.0.0..0.0....0...1ac..34.heirloom-hp..0.0.0.qytYJr1UZKI
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
헐~
감사드립니다 ^^!
이런 초보적인 부분에서 잘못을 범했네요.
아무래도 제가 진짜 초보라서 -_-;
무식한 질문 죄송하고, 답변과 레퍼런스 링크까지 정말 감사합니다. ^^~
man page 도 있습니다.
알아보기는 어렵네요. ㅇ_ㅇ;;
http://linux.die.net/man/3/printf
http://www.freebsd.org/cgi/man.cgi?printf(3)
http://www.manpagez.com/man/3/printf/
http://linux.die.net/man/1/printf
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
어이쿠
많은 자료 제공 감사합니다.
덕분에 레퍼런스를 다시 한번 읽어보고 있습니다. ^^;
댓글 달기