2진수
2진수는 0과 1로만 이루어져있는 수이다.
1bit의 단위를 가진다.
bit란?
2진수의 기본 단위이다.
패리티 비트
패리티 비트는 전달하는 데이터의 오류를 검증해주는 비트이다.
문자열 내 1비트의 모든 숫자가 짝수 또는 홀수인지를 보증하기 위해 전송하고자 하는 데이터의 각 문자에 1 비트를 더하여 전송하는 방법으로
2가지 종류의 패리티 비트(홀수, 짝수)가 있다. 패리티 비트는 오류 검출 부호 에서 가장 간단한 형태로 쓰인다.
실질적으로 오류를 확인할 수 있는 비트이지, 그 오류에 대한 해결을 할 수는 없다.
보수
보수는 사전적 의미로 보충을 해주는 수 라고 정의되어 있다.
숫자 2의 10의 보수는 8이 되는 것이다.
논리 회로에서의 보수는 뺄셈 연산을 할 때, 좀 더 효과적으로 수행하며
논리적 조작의 용이성을 위해 사용한다.
- 1의 보수
2^n -1
자리수 최대값에서 해당하는 이진수 값을 빼주면 그것이 바로 1의 보수
- 2의 보수
2^n - 1
자리수 최대값에서 해당하는 이진수 값을 빼준 후에 1을 더해주는 보수
1의 보수 감산
- 1의 보수 감산은 주어진 수들을 일단 2진수로 변환한다.
- 음수로 되어있는 수는 1의 보수를 취해준다.
- 서로의 자릿수가 다르다면 자리수를 맞춰준다.
- 앞에 양수면 0, 음수면 1의 부호비트를 붙여준다.
- 덧셈을 진행한다.
- 진행한 후에
자리올림(Carry)
가 발생하면 최하위 비트에 1을 더해준다.
그 후 맨앞의 부호비트는 떼어놓고 나머지 수들의 자릿수만큼의 경우의 수(절대값)은
2^n-1
에서 떼어놓은 나머지 수를 빼주고 10진수로 변환한다.
그리고 나서 부호비트를 표현해주면 그것이 보수감산하여 나온 값이 된다.
2의 보수 감산
2의보수는 1의보수 + 1 이기 때문에 1의보수 방법에서
보수로 변환을 해준 뒤에 + 1을 시켜준다.
마찬가지로 부호비트를 추가해주고 덧셈을 수행하면 된다.
그리고 나서 보수감산이 진행되고 나서 다시 +1을 해준다.
불대수 법칙
이전 포스팅에서도 정리를 했었는데, 다 알고있던건 수기로 작성했고
드모르간 정리는 저번 포스팅 때에 존재하였기 때문에,
제2 분배법칙을 따로 증명해보았다.
그게 바로 X + YZ = (X+Y)(Y+Z)
이런 법칙이다.
(X+Y)(X+Z)
를 분배해서 일일이 나열하게 되면
XX + XY + XZ + YZ
가 되는데,
여기서 XX + XY
를 X에 대해 묶어주면
X(1 + Y)가 된다.
기본법칙에서 1 + 변수
는 1이되므로 생략이 된다.
그래서 저 식을 풀면 그냥 X가 된다.
정리를해보면 X + XZ + YZ
가 남게 되는데 여기서 또,
X에대해서 X + XZ
를 묶어주게 되면
X(1 + Z)
가 되어서 또다시 X가 된다.
그래서 최종적으로 보게 되면 X + YZ 가되어 두식이 같다는걸 증명했다.
이제 좀 탄력을 받아서 ALU 구현하는데에 도전해볼 것 같다는 확신이 든다.
이 유튜브 페이지에 들어가서 Computer Science
에
아주 좋은 강의가 순서대로 있었다.
논리게이트부터 CPU까지만 지금 들었지만 굉장히 이해하기 쉽고 재밌게 설명해서
보면서 감탄만 한것 같다.