수제비 2022 정보처리기사 실기 수험서를 보고 공부한 기록입니다.
👉진수
1. 진수(Antilogarithm) 개념
- 특정 개수의 숫자만을 이용하여 수를 나타내는 수 체계이다
- 10진수 이하일 때는 0~9를 사용하지만, 10진수 초과할 경우는 영어 알파벳(A~F)을 이용한다
2. 진수 변환
① 10진수를 n진수로 변환
- 10진수 값을 몫이 n보다 작을 때까지 n으로 나누고 나머지 값들을 표시한 후에 나머지 값들을 읽는다
■10진수 13을 2진수로 변환(10진수 이하 진수로 변환)
- 10진수 값을 몫이 2보다 작은 값이 될 때까지 2로 나누고 나머지 값들을 표시
- 13을 2로 나누면 몫은 6, 나머지는 1
- 6을 2로 나누면 몫은 3, 나머지는 0
- 3을 2로 나누면 몫은 1, 나머지는 1
- 나머지 값들을 읽음
- 몫인 1부터 나머지 값들을 나온 순서의 반대로 읽음(1101)
- 13의 2진수는 1101
■10진수 201을 16진수로 변환(10진수 초과 진수로 변환)
- 10진수 값을 몫이 1이 될 때까지 2로 나누고 나머지 값들을 표시
- 201을 16으로 나누면 몫은 12, 나머지는 9
- 10 이상의 숫자들을 영어 알파벳으로 변환
- 나머지 값들을 읽음
- 몫인 C부터 나머지 값들을 나온 순서의 반대로 읽음(C9)
- 201의 16진수는 C9
② n진수를 10진수로 변환
- n진수에서 마지막 자리는 자리 숫자에 자릿값인 n0을 곱하고, 마지막에서 두 번째 자리는 자리 숫자에 자리값인 n¹을 곱하고, 마지막에서 세 번째 자리는 자리 숫자에 자릿값인 n²을 곱하고, ··· 자리 숫자와 자릿값을 더해 10진수를 계산한다
■2진수 1101을 10진수로 변환(10진수 이하 진수를 10진수로 변환
① 자리 숫자에 자릿값을 곱한 값 계산
자리 숫자 | 1 | 1 | 0 | 1 |
---|
자릿값 | 2³(=8) | 2²(=4) | 2¹(=2) | 20(=1) |
계산 | 1×8=8 | 1×4=4 | 0×2=0 | 1×1=1 |
② 계산한 값들을 합산
- 8+4+0+1 = 13
- 2진수 1101의 10진수 값은 13
■16진수 C9를 10진수로 변환(10진수 초과 진수를 10진수로 변환)
① 자리 숫자에 자릿값을 곱한 값 계산
자리 숫자 | C | 9 |
---|
자릿값 | 16¹(=16) | 160(=1) |
계산 | C×16 | 9×1=1 |
② 영어 알파벳을 숫자로 변환
10진수 | 16진수 |
---|
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
자리 숫자 | 12 | 9 |
---|
자릿값 | 16¹(=16) | 160(=1) |
계산 | 12×16=192 | 9×1=1 |
③ 계산한 값들을 합산
- 192+9=201
- 16진수 C9의 10진수 값은 201
👉아스키 코드
- 미국 ANSI에서 표준화한 정보교환용 부호체계이다
- 영문 키보드로 입력할 수 있는 모든 기호가 할당된 기본적인 부호체계이다
2. 주요 아스키 코드
10진수 | 부호 | 10진수 | 부호 | 10진수 | 부호 |
---|
0 | NULL | 65 | A | 97 | a |
32 | ' ' (Space) | 66 | B | 98 | b |
48 | 0 | 67 | C | 99 | c |
49 | 1 | 68 | D | 100 | d |
■아스키 코드 예제
[소스코드]
#include <stdio.h>
void main(){
char a;
a='A'+2;
printf("%d %c",a,a);
}
[출력]
67 C
- 'A'는 65에 2를 더하면 a라는 변수에 67이 저장됨
- %d는 10진수 출력이므로 67이 출력, %c는 코드를 출력하므로 'C'를 출력