10진 시스템은 기수가 10이다. 왜냐하면 10진 시스템에서는 10개의 숫자를 쓰며 계수에 10의 멱승을 곱하기 때문이다.
2진 시스템은 기수가 2이며 계수는 0과 1 두 개뿐이다.
기수 5에 대해서 생각해보자. 계수 값은 0, 1, 2, 3, 4만 가능하다.
8진 시스템은 0 -7까지 8개 기수를 갖는다.(여기서 8과 9는 나타나지 않음을 기억해야한다.)
보통 기수가 10 이하인 경우 계수에 소요되는 r개의 숫자를 10진 시스템에서 빌려쓰고 기수가 10 이상 되는 때는 10개의 10진수를 보충하기 위해 알파벳 문자를 쓴다. 예를 들면 16진수가 그 예이다. 0 - 9: 10진 시스템, 10-15: 알파벳 A - F
기수의 변환
다른 기수로 표현된 숫자는 10진수로 바꾸었을 때 같은 값이면 같다고 말할 수 있다.
보수
보수는 디지털 컴퓨터에서 뺄셈 연산을 간편하게 하여고 논리적 조작을 위해 사용되고 있다.
r의 보수와 r-1의 보수
정수 부분에 n개의 숫자를 가지는 기수 r 에서의 숫자 N이 주어졌을 때, N에대한 r-1의 보수는 (r^n-1)-N으로 정의된다.
예를 들어 10진수의 경우 r = 10이고, r-1 = 9이므로 N에대한 9의 보수는 (10^n-1) - N이다.
(10^n-1) 은 9로 표현되는 숫자이다. 따라서 어떤 10진수에 대한 9의 보수는 9에서 각 숫자를 뺌으로써 얻을 수 있다.
546700 에대한 9의 보수는 999999 - 546700 = 453299
10의 보수는 9의 보수에 1을 더함으로써 구할 수 있고 2의 보수는 1의 보수에 1을 더함으로써 얻을 수 있다.
N에대한 r의 보수는 r^n - N이며, 보수의 보수는 원래의 수가 된다.
** 2의 보수는 오른쪽에서부터 처음 나온 1까지 그대로 두고 그 뒤부터는 반대로 바꾸어주면 쉽게 구할 수 있음.
보수를 이용한 뺼셈
기수가 r인 두 양수의 뺼셈은 다음과 같은 방법으로 구할 수 있다.
1. 피감수에 감수에 대한 r의 보수를 더해준다.
2. M(피감수)>=N(감수)일 경우 합에서 끝자리올림이 발생하면 이를 버린다.
3. M < N이면 그 합은 끝자리올림이 발생하지 않으며 합에대해 r의 보수를 취하고 앞에 음의 부호를 붙인다.
부호화 이진수
컴퓨터는 모든 정보를 2진수로 나타내기에 숫자의 가장 왼쪽 비트를 부호로 나태낸다.
양수는 0, 음수는 2로써 부호를 나타냄
부호가 있는 수의 표현을 부호-크기 방식이라고 한다.
부호크기방식에서 두 수의 덧셈
부호가 2의 보수로 표현된 음수를 포함한 2진수의 합은 부호 비트를 포함한 두 수의 합으로 얻어진다. 이 때 부호비트로서의 역할은 무의미하다.
산술 뺼셈
2의 보수로 표현된 음수를 포함한 부호가 있는 2진수의 뺄셈은 감수의 2의 보수를 취하고 그것을 피감수에 더한다.
부호의 유무에 따라 뺄셈의 결과를 다르게 해석해야한다.
BCD 코드 : 한 자리 숫자를 표현하는 2진수라고 생각하면 된다.
BCD 코드의 덧셈에서 각 숫자가 9를 초과할 수 없기 때문에 합은 9+9+1 = 19를 초과할 수 없다.
2진수의 합은 0 - 19까지가 되고 이를 BCD 코드로 표현하면 0000에서 1 1001까지가 되므로
2진수의 합이 1010과 같거나 크다면 0110을 더해 올바른 합과 캐리를 구해야한다.
'전공 수업 CS > Digital Engineering' 카테고리의 다른 글
[디지털공학] 게이트 레벨 최소화하기 | 대수적 방법, 카르노맵(k-map) (0) | 2023.04.05 |
---|---|
[디지털공학] 함수의 보수와 Canonical form 사이의 변환 (0) | 2023.04.05 |
[디지털공학] Canonical form 그리고 truth table (0) | 2023.04.05 |
[디지털공학] 불 함수 관련 용어 정리 (0) | 2023.04.05 |
[디지털공학] 부울 대수와 논리게이트 | Boole 대수 (0) | 2023.03.30 |