공부쟁이
[필기] 자료의 표현과 진법 본문
1. 자료의 표현과 진법
컴퓨터는 0과 1(2진법)만 이해함. 모든 데이터(숫자, 문자, 이미지, 소리 등)는 이진수(Binary)로 변환되어 저장
(1) 숫자의 표현
- 정수(Integer) : 10진수를 2진수로 변환하여 저장
예: 10(10) → 1010(2)
- 부동소수점(Float): IEEE 754 표준을 사용하여 이진수로 변환
예: 3.14(10) → 2진 부동소수점 형식으로 변환
(2) 문자(Character)의 표현
컴퓨터는 문자를 직접 저장하지 못하므로 문자를 숫자로 변환하여 저장
- ASCII 코드: 문자 하나를 7비트 또는 8비트(1바이트)로 표현
예: 'A' → 65(10) → 01000001(2)
- 유니코드(UTF-8): 다국어 지원을 위해 8비트~32비트 사용
예: '가' → 11000000 10101101 (UTF-8)
(3) 색상의 표현
웹에서 색상 코드를 보면 16진법 사용
예: #FF5733 (RGB 값)
FF(16) = 255(10), 57(16) = 87(10), 33(16) = 51(10)
(255, 87, 51) → 빨간색 계열
2. 연산과 진법
컴퓨터 내부에서 연산할 때, 이진법을 기반으로 논리 연산과 수학 연산을 수행
(1) 논리 연산 (AND, OR, XOR, NOT)
- 비트 연산(bitwise operation): CPU가 빠르게 연산을 수행하기 위해 사용
예: AND 연산
1010 (10)
1100 (12)
------
1000 (8) ← AND 연산 결과
(2) 덧셈과 뺄셈 (이진수 연산)
- 이진수 덧셈 (Carry 발생)
-
1011 (11) + 1101 (13) ------------ 11000 (24)
- 이진수 뺄셈 (2의 보수 이용)
(3) 시프트 연산 (Shift Operations)
비트를 이동하면 곱셈/나눗셈 효과!
- 왼쪽 시프트( << ): 곱하기 2
0001 0100 (20)
<< 1
0010 1000 (40) ← 2배 증가
- 오른쪽 시프트( >> ): 나누기 2
0010 1000 (40)
>> 1
0001 0100 (20) ← 2배 감소
3. 8진법과 16진법이 쓰이는 이유
2진법은 0과 1만 사용하므로 너무 길어짐. 이를 줄이기 위해 8진법과 16진법을 활용
(1) 8진법의 사용
- 파일 권한 설정 (Linux)
-> chmod 755 → 8진법 사용
-> 7(111), 5(101), 5(101) → 2진수로 쉽게 변환
(2) 16진법의 사용
- 메모리 주소 (Hexadecimal Memory Address)
-> 컴퓨터 메모리의 주소는 길고 복잡한 2진수를 줄이기 위해 16진법 사용
-> 예: 0x1F4A (16진수) → 0001 1111 0100 1010 (2진수)
- 색상 표현 (웹, 그래픽 디자인)
-> RGB(빨강, 초록, 파랑) 값을 16진수로 표현
-> 예: #FF0000 (빨간색), #00FF00 (초록색)
4. 정리: 자료 표현과 연산에서 진법이 중요한 이유
진법 사용 예시
2진법 (Binary, 0과 1) | CPU 연산, 논리 연산, 비트 연산 |
8진법 (Octal, 0~7) | 파일 권한 (Linux), 2진수를 줄이기 |
16진법 (Hex, 09, AF) | 메모리 주소, 색상 코드, 디버깅 |
- 컴퓨터는 2진법을 사용하여 데이터를 저장하고 연산
- 8진법과 16진법은 2진수를 줄여서 표현할 때 유용
- 비트 연산, 시프트 연산 등을 통해 컴퓨터가 데이터를 처리
'IT > 정보처리기능사(필기,실기)' 카테고리의 다른 글
[실기] C언어 실기문제(2) 배열 이동 (0) | 2025.02.12 |
---|---|
[실기] C언어 실기문제(1) 증감연산자 전위, 후위 (0) | 2025.02.06 |
[실기] 순서도 기호 (0) | 2025.02.06 |
[필기 시험 후] 2025년 1회 정보처리기능사 필기 CBT 시험 후 (0) | 2025.01.26 |
[필기] 로더(Loader)의 기능 (0) | 2025.01.23 |