unix상에서 아래처럼 실행시켰는데요...
#include
int main() {
short s;
s=100000;
/* s=0x186A0; */
printf("s is [%d]\n",s);
return 0;
}
실제실행결과 -31702
저의예상결과 -7960
제생각에는 short가 2바이트니깐
100,000에 해당하는 0x186A0 이
앞에 1이 잘리고 0x86A0로 저장되는것같은데
음수이므로 2의보수로 읽으면 -7960 이 나와야하는데
실제로는 -31702가 나오네요.
문제가 뭔지, 확실히 아시는분 답변주심은 감사하겠습니다.