2.4 수의 표현과 연산
🎲 2.4.1 진법과 수의 구성
- 10진법 : 0 ~ 9 까지 사용, 10을 한 자리의 기본단위
- 2진법 : 0과 1의 조합으로 숫자를 표시, 0은 전기가 흐르지 X , 1 은 전기가 흐름
- 8진법 : 0 ~ 7까지의 수로 표시
- 16진법 : 0 ~ 9 , A ~ F까지를 사용
🎲 2.4.2 수의 변환
주어진 수를 다른 진법으로 변환하기 위한 가장 일반적인 방법 -> 10진수로 변환 후 다른 진법변환
🎲 2.4.3 2진수의 연산
(1) 덧셈
10진수 : 수의 합이 10일때 올림을 한다
2진수 : 수의 합이 2일때 올림을 한다
8진수 : 수의 합이 8일때 올림을 한다
(2) 보수의 개념
🔎 보수(Complement) - r의 보수, (r-1)의 보수
- (r-1)의 보수 : (r-1)의 값에서 수의 각 자리의 숫자르 뺀다.
- r의 보수 : (r-1)의 보수를 구하고 가장 낮은 자리에 1을 더한다.
<예시>
10진수 835 의 9의 보수(r-1)는 164 , 10의 보수는 165 이다.
2진수 1010의 1의 보수(r-1)는 (0101) , 2의 보수는 (0110) 이다.
(3) 1의 보수에 의한 뺄셈 처리 과정
" 컴퓨터 에서는 덧셈만 가능하기 때문에 보수를 이용하여 덧셈으로 변환하여 뺄셈 결과를 얻는다."
<예시> A - B
1. A 에 B의 1의 보수를 취하여 더한다.
2. 맨 윗자리의 자리 올림수가 있으면 최한위 비트에 1을 더한다.
자리 올림수가 없으면 얻은 결과에 다시 1의 보수를 취하고 '-' 부호를 붙인다.
맨 윗자리의 자리 올림수가 있는 경우
자리 올림수가 없는 경우
2.5 데이터의 표현
🔍 2.5.1 수치 데이터 표현
(1) 비트 , 바이트 , 워드
- 비트(bit) : 컴퓨터에서 사용하는 최소의 단위로서 0 이나 1
- 바이트(byte) : 영문 1글자를 나타내는 단위 , 1byte = 8bit
- 워드(word) : 통상 4byte를 말한다.
(2) 고정 소수점 데이터 형식
정수를 표현하는데 사용되며 2byte 또는 4byte 영역으로 표시한다.
- MSB(Most Siginificant. Bit) : 제일 왼쪽에 위치하며 부호를 나타내는 비트(양수 : 0,음수 : 1)
- 양수의 경우 정수 부분 : 10진수를 2진수로 변환하여 표시한다.
- 음수의 경우 정수 부분 : 부호와 절댓값의 표현법
(3) 부동 소수점 데이터 형식
실수를 표현하는데 사용하며 4byte 실수형과 8byte 실수형이 있다.
- MSB(Most Siginificant. Bit) : 제일 왼쪽에 위치하며 부호를 나타내는 비트(양수 : 0,음수 : 1)
- 지수부 : 지수를 2진수로 변환하여 표시한다.
- 가수부 : 소수점 안의 유효 숫자를 2진수로 표현한다.
"이때 소수점은 지수부와 가수부 사이에 있는것으로 가정"
🔍 2.5.2 문자 데이터 표현
(1) 아스키 코드(미국 정보 교환 표준코드)
: 미국표준협회가 제정한 데이터 처리 및 통신 시스템 상호간의 정보 교환용 표준 코드
-
구성 : 7개의 데이터 비트 + 1개의 패리티 점검 비트
-
아스키 코드의 구성
-
zone bit => 001 : 숫자 , 100 : A ~ O , 101 : P ~ Z
(2) BCD 코드 (Binary-Coded Decimal Code)
: 6Bit 를 사용하여 하나의 문자를 표시하는 방식
- 기억 장치의 단어 길이가 6의 배수로 설계된 컴퓨터에 적합하다.
- 구성 : 존 필드 + 디지트 필드 => 하나의 문자
(3) EBCDIC 코드 ( Extended Binary Coded Decimal Interchange Code)
: 기존의 BCD콛를 8bit으로 확장, 256개의 문자 표현 , 16진수 표기 가능
(4) 한글과 한자 데이터의 표현
1. ksc 5601 (완성형)
- 미리 만들어 놓고 표현하는 코드
- 정의된 문자 이외에 다른 글자 사용 x , 메모리 차지가 크다 .
- 정렬의 문제와 글자체의 모양을 좋게 할 수 있다.
2. 조합형
- 한글 읍절 11,272개 모두 표현 가능
- 초성, 중성, 종성을 각각 별도로 처리하여 모든 글자 조합이 가능하다.
3. UNICODE
- 전 세계 언어를 하나의 코드 체계 안으로 통합
- 2byte 사용, 각 국가의 언어를 표시할 수 있다. java 에서도 사용
2.6 논리 회로
👨 2.6.1 부울 대수
"2진수 표현으로 명제의 참과 거짓, 전기 신호 유무, 스위치 on과 off 등을 표현"
= 논리 대수 , 스위칭 대수
💡 2.6.2 기본 논리 회로
(1) OR gate (논리합) : 2개의 조건중 적어도 하나가 만족
(2) AND gate (논리곱) : 2개의 조건중 2개가 만족
(3) NOT gate (논리부정) : 출력 조건이 입력조건의 반대
(4) NAND gate (부정논리곱) : 모든 입력이 참일 때에만 거짓을 출력
(5) NOR gate(부정논리합) : OR의 부정결과