엔지니어가 되고 싶은 공돌이
02. 컴퓨터에서 수의 표현(Representation of Numbers on a Computer) 본문
02. 컴퓨터에서 수의 표현(Representation of Numbers on a Computer)
Geca 2024. 5. 1. 20:43
2. 1. 컴퓨터에서 수의 표현(Representation of Numbers on a Computer)
- 컴퓨터의 연산장치는 덧셈과 곱셈은 덧셈과 시프트 연산을 이용해서 계산한다.
뺄셈과 나눗셈은 보수의 덧셈과 시프트 연산을 이용해서 계산한다.
- 보수(Complement) : 어떤 수 x에 대하여 n의 보수는 x와의 합이 n이 되는 수를 말한다.
ex) 1에 대한 5의 보수 : 4 , 4에 대한 9의 보수 : 5.
- Base N 에는 N’s complement 와 N-1’s complement가 존재한다.
- 그러므로 컴퓨터에서 사용하는 Base 2 에는 2’s complement와 1’s complement가 존재한다.
- 1’s complement : 2진수에서 0은 1로, 1은 0으로 바꾸는 방법.
ex) 1100 -> 0011.
- 2’s complement : 2진수에서 0은 1로, 1은 0으로 바꾸고 나서 1을 더하는 방법.
ex) 1100 -> 0100.
- 컴퓨터에서는 숫자 데이터를 부호화-절댓값(Sign Magnitude), 1의 보수(1’s complement), 2의 보수(2’s complement)로 표현한다. 지금 널리 사용되는 방법은 2의 보수(2’s complement)이다.
- 부호화-절댓값(Sign Magnitude) : MSB(Most Significant Bit)에 0일 때는 Positive Number, 1 일 때는 Negative Number 로 표현하고, 그 뒤의 Bit에 2진수로 숫자를 저장한다.
다만 이 방법은 컴퓨터에서 연산할 때 연산의 결과가 정확하지 않고, 0을 표현하는 방법이 2가지라서 사용하지 않는다.
- 1’s complement 방법은 연산의 결과가 정확하지만, 여전히 0을 표현하는 방법이 2가지라서 사용하지 않는다.
- 1’s complement, 2’s complement -> Base 10,
1의 보수는 다시 1의 보수로 바꾸어 주고, 각각의 자리수에 맞는 2n 을 곱해주어서 10진수로 바꿔준다.
2의 보수는 다시 2의 보수로 바꾸어 주고, 각가의 자리수에 맞는 2n 을 곱해주어서 10진수로 바꿔준다.
- 보수의 연산을 할 때, 1’s complement 에서 발생한 초과 비트는 LSB(Least Significant Bit)로 가서 한 번 더 더해주어야 하지만, 2’s complement 에서 발생한 초과 비트는 그냥 버리면 된다.
- Positive Number + Negative Number(Complement) 를 계산할 때는, 2진수로 표현(MSB 표현 주의) -> 덧셈 연산 -> MSB가 1이면 Base 10으로 바꾸기.
'Mathematics > Discrete Mathematics' 카테고리의 다른 글
06. 행렬(Matrix) (0) | 2024.05.05 |
---|---|
05. 집합(Set) (0) | 2024.05.04 |
04. 증명(Proof) (0) | 2024.05.03 |
03. 명제(Proposition) (0) | 2024.05.02 |
01. 수 체계(Number System) (0) | 2024.04.30 |