C언어 기초 프로그래밍을 혼자 쉽게 배울 수 있도록 실습예제들을 사용하여 설명하겠습니다:)
3강에서는 'C언어 프로그래밍의 데이터 표현 방식'에 대하여 알려드립니다.
1. 컴퓨터 데이터 표현 및 처리방식
- 실제 저장이 되는 데이터의 형태는 1과 0
- 숫자와 기호를 사용한 수의 표현
2. 2진수를 10진수로 변환하기
★ 실습 예제
실습 1) 2진수 1101을 10진수로 변환
풀이 과정:
1101 = (1×2³) + (1×2²) + (0×2¹) + (1×2⁰)
= 8 + 4 + 0 + 1
= 13
정답: 13
실습 2) 10진수 68을 2진수로 변환하기
풀이 과정:
68 ÷ 2 = 34, 나머지 0
34 ÷ 2 = 17, 나머지 0
17 ÷ 2 = 8, 나머지 1
8 ÷ 2 = 4, 나머지 0
4 ÷ 2 = 2, 나머지 0
2 ÷ 2 = 1, 나머지 0
1 ÷ 2 = 0, 나머지 1
정답: 1000100
3. 2진수와 16진수 사이의 변환
- 16진수 한자리는 네자리의 2진수로 표현 가능
★ 실습 예제
실습 1) 16진수 12DE를 2진수로 변환하기
풀이 과정: 16진수 12DE를 2진수로 변환하려면, 각 16진수 자릿수를 4자리 2진수로 바꿔서 이어 붙이면 됩니다.
12DE = 0001 0010 1101 1110
= 1001011011110 (앞의 0은 생략 가능)
정답: 1001011011110
실습 2) 110000101001을 16진수로 변환하기
풀이 과정: 2진수 110000101001을 16진수로 변환하려면, 오른쪽부터 4자리씩 끊어서 16진수로 바꾸면 됩니다.
110000101001
→ 0001 1000 0101 0011 (왼쪽에 0을 붙여서 4자리로 맞춤)
→ 0001 1000 0101 1001
정답: C29
4. 2진수와 8진수 사이의 변환
- 8진수 한자리는 세자리의 2진수로 표현 가능
- 2진수를 8진수로 변환: 오른쪽에서부터 3자리씩 나누어 계산한다.
예) 2진수 1100101001를 8진수로 변환
→ 오른쪽에서부터 3자리씩 묶는다 : 1 100 101 001
→ 1 100 101 001의 맨앞에 '00'을 붙여준다 : 001 100 101 001
→ 001 100 101 001 : 8진수로 변환하면 1 4 5 1
★ 실습 예제
실습 1) 10010011를 8진수로 변환하기
풀이 과정: 2진수 10010011을 8진수로 변환하려면, 3자리씩 오른쪽부터 끊어서 8진수로 바꾸면 됩니다.
10010011 → 010 010 011 (앞에 0을 붙여서 3자리씩 나눔)
정답: 223
실습 2) 8진수 530을 2진수로 변환하기
풀이 과정: 8진수 530을 2진수로 변환하려면, 각 8진수 숫자를 3자리 2진수로 바꿔서 이어 붙이면 됩니다.
530 = 101 011 000
= 101011000
정답: 101011000
5. 8진수와 16진수로 숫자 표현하기
- 0으로 시작하면 8진수로 인식
- 0x로 시작하면 16진수로 인식
★ 실습 예제
아래의 코드를 입력하고 'number.c'로 저장한 후 실행해보세요.
#include <stdio.h>
int main(void) {
int n8=010; //8진수 숫자(0으로 시작) 10을 n8이라는 변수에 저장
int n10=10; //10진수 숫자 10을 n10이라는 변수에 저장
int n16=0x10; //16진수 숫자(0x로 시작) 10을 n16이라는 변수에 저장
printf("8진수 초기화 변수값: %d \n", n8);
// n8이라는 변수에 저장되어 있는 값을 10진수 숫자(%d)로 변환하여 출력
printf("10진수 초기화 변수값: %d \n", n10);
// n10이라는 변수에 저장되어 있는 값을 10진수 숫자(%d)로 변환하여 출력
printf("16진수 초기화 변수값: %d \n", n16);
// n16이라는 변수에 저장되어 있는 값을 10진수 숫자(%d)로 변환하여 출력
return 0;
}
[출력 결과]
8진수 초기화 변수값: 8
10진수 초기화 변수값: 10
16진수 초기화 변수값: 16
6. 데이터 표현의 단위
7. 정수의 표현 방식
8. 음의 정수 표현, 보수법
- 음의 정수: 양의 정수값에 2의 보수를 취하면 음의 정수값이 된다.
- 1의 보수: 1은 0으로, 0은 1로 변경한 수
- 2의 보수: 1의 보수에 1을 더한 수
- 음의 정수 검증방법: 양의 정수와 음의 정수를 더하여 0이 나오는지 확인
- 부호 비트(왼쪽 첫번째 자리)가 0이면 양수, 1이면 음수
★ 음의 정수 표현 단계
- 양수 5의 2진수 : 00000101
- 양수 5의 '1의 보수' : 11111010
- 양수 5의 '2의 보수' : 11111011
- 음수 5의 2진수 : 11111011
- 검증 : 00000101 + 11111011 = 0 (맨 앞자리의 올림수는 버림)
★ 실습 예제
실습 1) 음수 6을 음의 정수로 변환하세요.
- 1의 보수 (비트 반전) : 11111001
- 2의 보수 (1의 보수 + 1) : 11111001 + 1 = 11111010
- -6은 2진수로 11111010 입니다.
실습 2) 음수 17을 음의 정수로 변환하세요.
- 1의 보수 (비트 반전) : 11101110
- 2의 보수 (1의 보수 + 1) : 11101110 + 1 = 11101111
- -17은 2진수로 11101111 입니다.
3강에서는 C언어의 데이터 표현방식에 대해 학습했습니다.
순서대로 따라해보고 예제들을 실습한다면 C언어 기초를 독학으로 배울 수 있습니다.
다음 4강에서는 'C언어의 자료형과 변수'에 대해 실습하도록 하겠습니다.
'C언어' 카테고리의 다른 글
C언어 기초 프로그래밍 2강 'C언어 프로그래밍의 구성' (0) | 2025.05.23 |
---|---|
C언어 기초 프로그래밍 1강 '프로그램 설치' (1) | 2025.05.23 |