C에서 int형->char형 궁금한점이요..

georgekyung의 이미지

char형 은 1바이트이고 상수는 -128~127까지 표현이 가능하잖아요..

공부하는 책에 나와있는건데요..

129는 int형 데이터의 상위 3바이트를 단순히 버림으로 1바이트 데이터(char형)로 만들면

그 결과 -127이 된다는데,,,왜그런거죠 - -;

아무리 생각해봐도 이해가 안가는데,,,

-가 붙게 된다는거 까진 알겠는데... -127이 어떻게 되는건지...

lateau의 이미지

1000 0001

0111 1110
0111 1111 #=> 127

--
I think to myself...what a emerging world.

unsouled의 이미지

어려울 것 없습니다.

00000000 00000000 00000000 10000001 => 129
10000001 => -127

이렇게 된 겁니다. 왜 10000001 => -127 인지 모르겠다면 '2의 보수' 에 대해서 알아보세요.

winchild의 이미지

질문하신분이, 어려울것 없다고 답해주신것에 이해하실런지 모르겠네요.

사실 질문하신분이 답변을 이해하려면, 컴퓨터아키텍처, 자료구조를 어느정도는 아셔야 이해가 가실텐데...
저 궁금증을 풀고자 하는것은, 호랑이 꼬리를 잡으시는 겁니다.

- 겨울아찌 -
winchild@kldp.org

- 겨울아찌 -
winchild@gmail.com

lateau의 이미지

따라 올라가다보면 결국 '컴퓨터의 모든 것'이 되어버릴지도요. :)
Java나 Ruby만 쓰다보니 어느 순간 바보가 되어버린 기분이라 요즘 다시 자료구조 보고 있습니다.
어렵지만 이게 제맛...(?)이란 느낌이 들더군요.

--
I think to myself...what a emerging world.