변수에 관한 질문..
글쓴이: kogun20 / 작성시간: 수, 2011/08/17 - 5:21오후
C언어를 이제 막 보고있습니다. 책중에 있는말중에 이해가 안되는 부분이 있어서 올립니다.
본문중..
2바이트의 부호있는 정수형 변수에 32,768의 값을 저장한다면 정수는 실제로 -32.768의 값을 가지게 될 것이다. <<== 부호있는 이라는말이 -를 의미하는것인가요?
또한 이 정수형 변수에 65,535라는 값을 저장하면 결과는 -1이 될것이다. <<=== 왜 -1이 되는지 이해가 되지 않습니다.
일반적으로, 허용되는 최대 값에서 입력된 값을 빼면 결과 값을 계산할 수 있다. <<== 여기서는 32767 에서 입력된 값을 빼라는말인것 같은데 그럼
32767 - 65535이면 = -32768이 되야 하지 않나요??
책은 Teach yourself c를 옴겨논 개정5판을 이용하고있습니다.
부탁드리겠습니다.
Forums:
signed형에서 맨앞 비트는
signed형에서 맨앞 비트는 부호비트입니다.
간단하게 설명하자면, signed형에서 양수값에 대응하는 음수값을 구하려면 2의 보수를 취하는 식으로 계산합니다.
또, 다르게 설명하자면, signed short의 경우
0xFFFF에서 0x0000~0x7FFF는 양수가 쓰고, 0x8000~0xFFFF는 음수가 쓰지요.
음수에서 제일 큰 값은 0xFFFF이므로 -1이고, 음수에서 제일 작은 값은 0x8000이므로 -32768입니다.
------------------------------
How many legs does a dog have?
감사합니다.
아직 0x에 대해서는 책에 나오질않아 이해못했지만
음수에서 제일 큰 값은 0xFFFF이므로 -1이고, 음수에서 제일 작은 값은 0x8000이므로 -32768입니다.
에서 왜 -1이 되엇는지 알았습니다.
감사합니다.
댓글 달기