[컴퓨터 기초] CPU가 곱하고 나누는 방법

Robert.Yang·2023년 2월 20일
1

컴퓨터 기초

목록 보기
10/28
post-thumbnail

이 강좌는 널널한 개발자님의 강의를 기반으로 작성한 글입니다.

CPU가 곱하고 나누는 방법

컴퓨터가 곱셈 하는 방법

곱셈은 여러번 더하면 되긴 하지만 이 방법은 너무 비효율적이라 다른 메커니즘(shift 연산)을 이용하게 된다. 아래 내용을 살펴보자.

  • 4비트로 5를 표현하면 0101 이다.
  • 4비트 0101을 왼쪽으로 한 칸 씩 밀면(Shift) 1010이다.
  • 맨 오른쪽에 0이 채워진다. (Padding)
  • 4비트로 표현하는 2진수 1010은 10이다.
  • 왼쪽으로한칸밀면곱하기 2, 두 칸 밀면 곱하기 4가 된다.

컴퓨터가 나눗셈 하는 방법

나눗셈은 여러번 빼면 되긴 하지만 이 방법은 너무 비효율적이라 다른 메커니즘(shift 연산)을 이용하게 된다. 아래 내용을 살펴보자.

  • 4비트로 6를 표현하면 0110이다.
  • 4비트 0110을 오른쪽으로 한 칸씩 밀면 0011이다.
  • 맨 왼쪽에 0이 채워진다. (Padding)
  • 4비트로 표현하는 2진수 0011은 3이다.
  • 7을 0을 나누면?
  • 7에서 0을 빼면 7이고 7은 0보다 크다.
  • 7에서 0을 계속 빼면 언젠 가는 0보다 작은 숫자를 만 날 수 있는가?
  • 만날 수 없다면 뺄셈 연산은 언제 끝날까?
    -> 이런 연산을 하게 되면 보통의 CPU에서는 에러가 발생한다. 하자만 ATMEGA128같은 CPU에서는 연산을 무한정하게 됨으로 연산할때마다 열에너지가 발생하고 결국 폭발하게 된다. 그걸 시연한 분이 있는데 아래 동영상 링크로 남겨보겠다.

나눗셈 링크

profile
모든 것을 즐길 줄 아는 개발자, 양성빈입니다.

0개의 댓글