이진수 나누기

작가: Roger Morrison
창조 날짜: 6 구월 2021
업데이트 날짜: 1 칠월 2024
Anonim
2진수 사칙 연산 (덧셈, 뺄셈, 곱셈, 나눗셈, 쉬프트)
동영상: 2진수 사칙 연산 (덧셈, 뺄셈, 곱셈, 나눗셈, 쉬프트)

콘텐츠

이진수를 나누는 방법은 긴 나눗셈을 사용하여 해결할 수 있습니다. 이는 절차를 직접 가르치거나 간단한 컴퓨터 프로그램을 작성하는 편리한 방법입니다. 또는 반복 뺄셈의 보수 방법은 프로그래밍에서 실제로 일반적으로 사용되지는 않지만 익숙하지 않을 수있는 접근 방식을 제공합니다. 기계 언어는 일반적으로 효율성을 높이기 위해 추정 알고리즘을 사용하지만 여기에서는 설명하지 않습니다.

단계로

2 가지 방법 중 1 : 긴 나눗셈 사용

  1. 십진수 긴 나눗셈을 다시 수행하십시오. 정규 십진수 (10 진수)로 긴 나눗셈을 한 지 오래 되었다면 밑수를 다시 검토하여 문제 172 ÷ 4를 찾으십시오. 그렇지 않으면 건너 뛰고 다음 단계로 이동하여 이진수에 대한이 절차를 배우십시오. 번호.
    • 그것 피제수 다음으로 나뉩니다. 제수, 그리고 대답은 .
    • 제수를 피제수의 첫 번째 숫자와 비교하십시오. 제수가 가장 큰 숫자이면 제수가 가장 작은 숫자가 될 때까지 계속해서 피제수에 숫자를 추가합니다. (예를 들어 172 ÷ 4를 계산할 때 4와 1을 비교하고 4> 1을 찾은 다음 4와 17을 비교합니다.)
    • 비교에 사용 된 피제수의 마지막 자릿수 위에 몫의 첫 자릿수를 씁니다. 4와 17을 비교 한 후 4가 17에 4 번 들어가는 것을 알 수 있으므로 몫의 첫 번째 숫자로 4를 7보다 높게 씁니다.
    • 곱하고 빼서 나머지를 찾습니다. 몫에 제수를 곱합니다 (이 경우 4 x 4 = 16). 17 아래에 16을 쓴 다음 나머지 1에 대해 17-16을 씁니다.
    • 반복. 다시 제수 4를 다음 숫자 1과 비교하고 4> 1을 확인하고 다음 숫자를 "가져와"대신 4와 12를 비교합니다. 4는 나머지없이 12에 세 번 들어가므로 3을 몫의 다음 자리로 쓸 수 있습니다. 답은 43입니다.
  2. 이진 긴 나눗셈 설정을 만듭니다. 예를 들어 10101 ÷ 11을 사용한다고 가정하면 10101을 피제수로, 11을 제수로 사용하여 긴 나눗셈으로 작성합니다. 몫을 작성하려면 위에 공백을 남겨두고 아래에 계산을 작성하십시오.
  3. 제수를 배당금의 첫 번째 숫자와 비교하십시오. 이것은 십진수 긴 나눗셈과 같은 방식으로 작동하지만 실제로 바이너리 형식에서는 훨씬 쉽습니다. 또는 숫자를 제수 (0)로 나눌 수 없거나 제수가 한 번에 맞습니다 (1).
    • 11> 1, 따라서 11 "맞지 않음"1. 몫의 첫 번째 숫자 (피제수의 첫 번째 숫자 위)로 0을 씁니다.
  4. 이제 다음 숫자를 가져 와서 1이 될 때까지 반복하십시오. 다음은 예제의 다음 몇 단계입니다.
    • 배당금의 다음 자리를 가져옵니다. 11> 10. 몫에 0을 씁니다.
    • 다음 숫자를 아래로 가져옵니다. 11 101. 몫에 1을 씁니다.
  5. 나머지를 결정하십시오. 십진수 긴 나눗셈에서와 같이 방금 찾은 숫자 (1)에 제수 (11)를 곱하고 방금 계산 한 숫자가있는 행에 배당금 아래 결과를 씁니다. 이진 형식에서는 1 x 제수가 항상 제수와 같기 때문에이 작업을 더 빠르게 수행 할 수 있습니다.
    • 배당금 아래에 제수를 씁니다. 여기서 우리는 배당금의 처음 세 자리 (101) 아래에 11로 씁니다.
    • 나머지는 101-11을 계산합니다. 10. 기억이 나지 않으면 이진수를 빼는 방법을 복습합니다.
  6. 문제가 해결 될 때까지 계속하십시오. 제수에서 다음 숫자를 아래 나머지로 가져와 100을 얻습니다. 11100이므로 몫의 다음 숫자로 1을 씁니다. 이전과 같이 문제를 계속 해결하십시오.
    • 100 아래에 11을 쓰고이 숫자를 빼서 1을 얻습니다.
    • 배당금의 마지막 자리를 가져 오면 답에 11이 나옵니다.
    • 11 = 11이므로 몫의 마지막 숫자 (답)로 1을 씁니다.
    • 나머지가 없으므로 문제가 완료됩니다. 정답은 00111또는 더 간단하게 111.
  7. 필요한 경우 기수 점을 추가하십시오. 때로는 결과가 정수가 아닙니다. 마지막 숫자를 사용한 후에도 나머지가 남아 있으면 배당금에 ".0"을 추가하고 "." 숫자를 하나 더 가져 와서 계속 진행할 수 있습니다. 원하는 정확도에 도달 할 때까지이 작업을 계속 한 다음 답변을 마무리하십시오. 종이에서 0을 생략하거나 마지막 숫자가 1 인 경우이를 제거하고 마지막 숫자에 1을 더하여 반올림 할 수 있습니다. 프로그래밍 할 때 표준 반올림 알고리즘 중 하나를 사용하여 2 진수와 10 진수를 변환 할 때 오류를 방지합니다.
    • 이진수를 나누면 10 진수 형식보다 자주 반복되는 소수 자리가 발생합니다.
    • 이것은 십진법 내에서만 "소수점"을 만나기 때문에 임의의 숫자 체계에서 접하는보다 일반적인 용어 "기수 점"으로 참조됩니다.

방법 2 : 보완 방법 사용

  1. 기본 아이디어를 이해하십시오. 나눗셈을 풀 수있는 한 가지 방법 (모든 밑수에 대해)은 피제수에서 제수를 뺀 다음 나머지를 빼서 음수에 도달하기 전에이 작업을 계속할 수있는 횟수를 세는 것입니다. 다음은 밑 수가 10 인 문제 26 ÷ 7의 예입니다.
    • 26-7 = 19 (1 회 빼기)
    • 19-7 = 12 (2 배 빼기)
    • 12-7 = 5 (3 배 빼기)
    • 5-7 = -2. 음수, 다시 올라갑니다. 답은 3이고 나머지는 5입니다.이 방법은 소수 자릿수를 고려하지 않습니다.
  2. 보완을 사용하여 빼는 법을 배웁니다. 위의 방법을 이진수에 쉽게 적용 할 수 있지만, 이진 나눗셈을 프로그래밍 할 때 시간을 절약 할 수있는보다 효율적인 방법을 사용할 수도 있습니다. 이것을 이진 보수 방법이라고합니다. 다음은 111-011을 계산하는 밑입니다 (두 숫자의 길이가 같은지 확인).
    • 1에서 각 숫자를 빼서 두 번째 항의 1의 보수를 찾으십시오. 1에서 0까지, 0에서 1로 설정하여 이진수로 쉽게 수행 할 수 있습니다.이 예에서 011은 100이됩니다.
    • 결과에 1을 더합니다 : 100 + 1 = 101. 이것을 2의 보수라고합니다. 이제 뺄셈을 덧셈으로 고려할 것입니다. 본질은 절차를 완료 한 후 양수를 빼는 대신 음수를 더하는 것처럼 문제를 처리한다는 것입니다.
    • 결과를 첫 번째 용어에 추가하십시오. 덧셈을 풉니 다 : 111 + 101 = 1100.
    • 첫 번째 숫자 (캐리 숫자)를 생략하십시오. 최종 결과를 얻으려면 답변에서 첫 번째 숫자를 제거하십시오. 1100 년 → 100.
  3. 위의 두 개념을 결합하십시오. 이제 나누기 합을 푸는 뺄셈 방법과 뺄셈 합을 푸는 2의 보수 방법을 알았습니다.아래 단계를 사용하여 두 가지를 하나의 나눗셈 합산 방법으로 결합 할 수 있습니다. 원하는 경우 계속하기 전에 직접 알아낼 수 있습니다.
  4. 2의 보수를 더하여 피제수에서 제수를 뺍니다. 문제를 풀어 봅시다 : 100011 ÷ 000101. 첫 번째 단계는 2의 보수 방법을 사용하여 100011-000101을 푸는 것입니다.
    • 000101의 2의 보수 = 111010 + 1 = 111011
    • 100011 + 111011 = 1011110
    • 첫 번째 숫자 (캐리) 생략 → 011110
  5. 몫에 1을 더합니다. 컴퓨터 프로그램에서 이것은 몫을 1 씩 늘리는 지점입니다. 종이에 나머지 작업을 엉망으로 만들지 않는 구석 어딘가에 메모를합니다. 뺄셈을 한 번 성공적으로 수행 했으므로 지금까지 몫은 1입니다.
  6. 나머지에서 제수를 빼서 이것을 반복하십시오. 마지막 계산의 결과는 제수가 한 번 "들어가는"후에 남은 나머지입니다. 계속해서 제수 2의 보수를 더하고 캐리를 뺍니다. 매번 몫에 1을 더하고 나머지가 더 작은 제수와 같을 때까지 계속합니다.
    • 011110 + 111011 = 1011001 → 011001 (몫 1 + 1 = 10)
    • 011001 + 111011 = 1010100 → 010100 (몫 10 + 1 = 11)
    • 010100 + 111011 = 1001111 → 001111 (11+1=100)
    • 001111 + 111011 = 1001010 → 001010 (100+1=101)
    • 001010 + 111011 = 10000101 → 0000101 (101+1=110)
    • 0000101 + 111011 = 1000000 → 000000 (110+1=111)
    • 0은 101보다 작으므로 이제 중지 할 수 있습니다. 몫 111 부분적인 문제에 대한 답입니다. 나머지는 빼기의 최종 결과입니다.이 경우에는 0 (휴식 없음)입니다.

  • 기계 명령어 세트에 이진 계산을 적용하기 전에 증가, 감소 또는 스택 명령어를 고려해야합니다.
  • 2의 보수 뺄셈 방법은 숫자가 다른 자릿수로 구성된 경우 작동하지 않습니다. 이 문제를 해결하려면 더 작은 숫자에 0을 추가하십시오.
  • 답이 양수인지 음수인지 확인하려는 경우를 제외하고는 계산하기 전에 부호있는 이진수의 부호있는 숫자를 무시하십시오.