728x90
반응형
2의 보수
데이터를 표현할 때 가장 왼쪽 비트 MSB는 부호를 나타낸다.
MSB가 0이면 양수, 1이면 음수를 나타낸다.
8비트로 정수 5를 표현하면 0000 0101이다.
그러나 -5를 표현하기 위해선 MSB를 1로 바꾼다고 되지 않는다.
MSB를 1로 바꾸기만한 -5와 5를 더한 결과는 0이 아닌 다른 수가 나온다.
음수를 표현하기 위해서는 2의 보수를 사용해야 하는데
사용방법은
1) 1의 보수를 취한 후
0000 0101 🔽🔽🔽 1111 1010 |
2) 1을 더한다
1111 1010 + 1 ----------------- 1111 1011 |
2의 보수를 통해 얻은 -5와 +5를 더하면 비로소 0이 나오는 것을 확인할 수 있다.
sizeof 연산자
sizeof는 사실 함수가 아닌 연산자이다.
그래서 sizeof 뒤에 자료형을 넣을 경우 소괄호가 필수이지만
그 외의 피연산자에 대해서는 선택적이다.
#include <stdio.h>
int main(void) {
int a = 4;
int b = sizeof a;
printf("a의 크기 = %d", b);
return 0;
}
해당 코드 실행 시 오류가 발생하지 않고 결과가 제대로 나옴을 알 수 있다.
그러나 문장의 이해를 돕기 위해 소괄호를 사용하는 것이 좋다.
unsigned 선언
정수 자료형에 한하여 unsigned 를 선언해주면 0과 양수를 표현하는 자료형이 된다.
데이터의 표현 범위가 양수 쪽으로 2배가 되며,
MSB도 데이터의 크기를 표현하는데에 사용된다.
728x90
반응형
'C' 카테고리의 다른 글
C 공부 6일차 Chapter 13 (0) | 2022.09.10 |
---|---|
C 공부 5일차 Chapter 12 (0) | 2022.09.09 |
C 공부 4일차 Chapter 11 (0) | 2022.09.08 |
C 공부 3일차 Chapter 6, 7, 8, 9 (2) | 2022.09.07 |
C 공부 1일차 (0) | 2022.09.05 |