반응형
아래 예제는 정수를 입력받아, 해당 정수를 8비트 이진수로 출력하면서 양수/음수의 2의 보수 표현을 확인할 수 있게 해줍니다.
#include <stdio.h>
// 8비트 이진수 출력 함수
void printBinary8(int num) {
for (int i = 7; i >= 0; i--) {
printf("%d", (num >> i) & 1);
}
}
int main() {
int num;
printf("정수를 입력하세요: ");
scanf("%d", &num);
printf("입력 값: %d\n", num);
printf("8비트 이진수 표현: ");
printBinary8(num);
printf("\n");
if (num < 0) {
printf("해당 값은 2의 보수로 저장되어 있습니다.\n");
} else {
printf("해당 값은 일반 양수 표현입니다.\n");
}
return 0;
}
실행 예시
정수를 입력하세요: -5
입력 값: -5
8비트 이진수 표현: 11111011
해당 값은 2의 보수로 저장되어 있습니다.
정수를 입력하세요: 5
입력 값: 5
8비트 이진수 표현: 00000101
해당 값은 일반 양수 표현입니다.

🔹 음수를 2의 보수로 표현하는 방법
예를 들어, 8비트로 표현한다고 가정하면:
- 양수 이진수 표현
절댓값을 2진수로 나타냅니다.
예: -5라면, 우선 5를 8비트로 표현 → 00000101 - 1의 보수(One’s Complement)
모든 비트를 반전시킵니다.
00000101 → 11111010 - 2의 보수(Two’s Complement)
1의 보수에 +1을 더합니다.
11111010 + 1 = 11111011
👉 따라서 -5의 8비트 2의 보수 표현은 11111011
반응형
'C_C++' 카테고리의 다른 글
| C++26 소개 (0) | 2025.11.09 |
|---|---|
| C언어 역사 연대표 (0) | 2025.08.13 |
| C++, 틱택토(TIC TAC TOE) 콘솔 게임: 인간과 컴퓨터 AI의 대결 (0) | 2025.08.09 |
| (C언어) 텍스트 파일을 문자와 16진수로 출력하는 코드 hexdump.c (0) | 2025.04.09 |
| (C언어) 비트 연산자를 이용한 암호화 복호화 예제 (0) | 2025.03.27 |