① 바꾸고자 하는 대상 숫자(절대값)을 2진수로 변환
② 위의 결과를 다시 1의 보수로 변환
③ 위의 결과에 1을 더한다.
#include <stdio.h>
int main() {
short x = 32767; // short의 최대값
short y = x + 1; // short형의 최대값보다 1큰 값을 y에 저장
printf("x = %hd\t y = %hd\n", x, y);
return 0;
}
x = 0 1 1 1 / 1 1 1 1 / 1 1 1 1 / 1 1 1 1 : signed short의 최대값
y = 1 0 0 0 / 0 0 0 0 / 0 0 0 0 / 0 0 0 0 = -32768 : y는 unsigned short가 아니기 때문
따라서 결과는 x = 32767 y = -32768
▶ 정수 저장 시 규칙
① 최대값 + 1 = 최소값
② 최소값 - 1 = 최대값
[TIL] 2 - 4. 데이터형 - 문자열형의 이해 (0) | 2022.03.01 |
---|---|
[TIL] 2 - 3. 데이터형 - 실수형의 이해 (0) | 2022.03.01 |
[TIL] 2 - 1. 데이터형 - 기본 데이터형의 종류 및 범위 (0) | 2022.03.01 |
[TIL] 1 - 5. C언어의 기초 - 프로그램의 전처리, 컴파일, 링크 (0) | 2022.02.05 |
[TIL] 1 - 4. C언어의 기초 - C 프로그램 예제 (0) | 2022.02.05 |
댓글 영역