-
[디지털공학개론] 2진수 연산학점은행제/디지털공학개론 2021. 1. 20. 13:51
10진수를 8진수로 바꿀때
우선 10진수를 2진수로 바꾼 후 8진수로 바꾸는것이 쉽다
음의 정수 표현
최상위 비트 (MSB) 를 부호 비트로 사용
- 양수(+) : 0
- 음수(-) : 1
2진수 음수를 표시하는 방법
- 부호와 절대치 (sign-magnitude)
- 1의 보수(1's complement)
- 2의 보수(2's complement)
2진수 덧셈
1011 +1011 ------ 10101
- 2진수에서는 덧셈결과가 2가 되면 자리올림이 발생된다
- 마찬가지로 8진수는 덧셈결과가 8이 되면 자리올림이 발생된다
- 자리올림을 영어로는 carry 라고 한다. 따라서 캐리가 발생했다 라고도 함.
- CPU를 만들때 필요한 기술
문제) 다음 10진수 값을 2진수 값으로 변환하라
풀이)
CPU 안의 구조
- 더하기 회로 + 왼쪽으로 쉬프트시키는 회로 = 곱하기회로
- 더하기 회로 + 오른쪽으로 쉬프트시키는 회로 = 나누기회로
- 따라서 더하기 회로만 있어도 CPU를 만들 수 있다
1의 보수를 이용한 2진수 뺄셈
- 작은 수에 1이 보수를 취한다
- 큰 수에 1의 보수를 합한다
- 이 때 발생하는 최종 자리올림을 결과의 최하위 비트에 더해준다
2의 보수를 이용한 2진수 뺄셈
- 2의 보수를 이용해서 2진수 뺄셈을 하려면 우선 2의 보수를 구하는 방법부터 알아야함
- 2의 보수를 구하는 방법은 아주 간단함
- 우선 2진수에 대해 1의 보수를 취해줌 (1은 0으로, 0은 1로)
- 가장 오른쪽 최하위 비트에 1만 더해주면 끝
- 1의 보수에서는 최하위 비트에 1을 더해줬는데 2의 보수에서는 그렇지 않다는 점이 다름
'학점은행제 > 디지털공학개론' 카테고리의 다른 글
[디지털공학개론] 2진 코드 시스템 (0) 2021.01.20 [디지털공학개론] 음수 표현 / 보수 구하기 (0) 2021.01.15 [디지털공학개론] 8, 16진수를 10진수로 변환 (0) 2021.01.14 [디지털공학개론] 10진수를 16진수로 변환 (0) 2021.01.14 [디지털공학개론] 10진수를 8진수로 변환하는 방법 (0) 2021.01.14