정말 간단한 질문은 여기에 있습니다. 두 개의 숫자를 더하고 그 숫자의 합계를 인쇄하는 정말 간단한 프로그램이 있습니다 (아래). 프로그램을 실행할 때 예상대로 작동하고 20 000 + 20 000에 대해 40 000을 인쇄합니다. 그러나 int a, b 및 sum을 으로 변경하면 a, b 및 sum으로 -256을 얻을 수 있습니다. 이것이 일어나는 이유를 설명 할 수있는 사람은 누구입니까? 나는 생각을 가지고 있지만 그것을 아는 사람으로부터 듣고 싶습니다. 읽어 주셔서 감사합니다. 시스템에두 개의 짧은 숫자를 추가 할 때
int a, b, sum;
a = 20000; b = 20000; sum = a+b;
printf("%d + %d = %d\n", a, b, sum);
구현시 'short'의 최대 값은 '32767'입니다. – Barmar
65535 max를 원하면'unsigned short'를 시도해 볼 수 있습니까? – corn3lius