컴퓨터 정보의 표현
1. 단위
-비트(Bit): 가장 기본 단위, 0또는 1로 표현
-바이트(Byte): 1바이트 = 8비트
-워드(Word): half word: 2byte, full word: 4 byte, double word:8 byte
2. 진법
-10진법: 0~9를 사용(일상생활에서 사용하는 체계)
-2진법: 0, 1을 사용(컴퓨터가 사용)
-8진법: 0부터 7숫자를 사용
-16진법: 0부터 9숫자를 사용하지만 이후 A, B, C, D, E, F를 사용
ex) 10진수 15는 2진수로는 1111, 16진수로는 F이다.
10진수 8은 2진수로는 1000, 16진수로는 8이다.
2-1. 부호 없는 2진 정수 표현
-2진수 -> 10진수 변환
ex) 2진수 1101를 뒤에서 부터 2^0, 2^1, 2^2, 2^3 ... 를 곱해서 모두 더해준다.
1 x 2^0 + 0 x 2^1 + 1 x 2^2 + 1 x 2^3 = 1 + 0 + 4 + 8 = 13 임을 알 수 있다.
2-2. 부호 있는 2진 정수 표현_n비트의 부호 절댓값 형식
-최상위 1비트를 양수면 0, 음수면 1로 표시한다.
ex) +15 = 00001111, -15 = 10001111
-n비트로 -2^(n-1) ~ +2^(n-1) 표현이 가능하다.
-하지만 0을 나타낼 때 00000000, 10000000 모두 가능하다는 논리오류가 있다.
2-3 부호 있는 2진 정수 표현_1의 보수 형식
-2진수의 절댓값에 1의 보수를 사용(비트 반전)
ex) +15 = 00001111, -15 = 11110000
-n비트로 -2^(n-1) ~ +2^(n-1) 표현이 가능하다.
-0을 표현하는데 논리 오류가 있다.
2-4 부호 있는 2진 정수 표현_2의 보수 형식
-1의 보수에 1을 더한다.
ex) +15 = 00001111, -15 = 11110001
-n비트로 -2^(n-1) ~ +2^(n-1)-1 표현이 가능하다.
*오버플로우
-최상위 비트를 부호비트로 쓰기 때문에 자리 올림이 일어나면 양수의 최고값을 넘어서는 것.
-2의 보수에서 127값은 01111111인데 여기서 1값이 올라가면 10000000이 된다. 즉 -128이 되는 것.
-c = (a + b) mod 2^n = a + b - 2^n < a 즉, a + b 인 c가 c < a 거나 c < b 면 오버 플로우
3. 2진수의 논리 연산
-기본 논리 연산
AND연산 | 모두 1이여야 1, 하나라도 0이면 0 |
OR연산 | 하나라도 1이면 1, 모두 0이면 0 |
-응용 논리 연산
Selective-set(선택적 세트) 연산 | 선택적으로 비트를 1로 세트 시킴 |
특정비트가 1로 세트된 데이터와 OR연산한다. |
Selective-complement(선택적 보수) 연산 | 선택적으로 비트를 1의 보수화 |
특정비트가 1로 세트된 데이터와 XOR연산한다. |
Mask(마스크) 연산 | 선택적으로 비트를 0으로 세트 시킴 |
특정비트가 0으로 세트된 데이터와 AND연산한다. |
Insert(삽입) 연산 | 특정 위치에 새로운 비트 삽입 | 마스크 연산 후 선택적세트 연산한다. |
Compare(비교) 연산 | 두 입력값을 비교 | 비트를 XOR연산한다. |
Circlular shift(순환 이동) | 비트가 순환하면서 이동 | 예를 들어 1001 좌측 이동은 0011 |
Arthmetic shift(산술적 이동) | 부호비트 유지, 숫자만 이동 | 예를들어 1001 좌측 이동은 1010 |
'Computer Science (CS) > Computer Structure' 카테고리의 다른 글
[컴퓨터구조 #6] 분기, 서브루틴 명령어와 명령어 분류 (0) | 2020.05.26 |
---|---|
[컴퓨터구조 #5] 메모리구조와 레지스터 (4) | 2020.05.23 |
[컴퓨터구조 #4] 명령어 실행 기법 (2) | 2020.05.22 |
[컴퓨터구조 #3] 컴퓨터 프로그래밍 언어 (0) | 2020.04.17 |
[컴퓨터구조 #1] 중앙처리장치(CPU) (0) | 2020.04.11 |