Ankstesniame skyriuje sužinojome, kaip galime atlikti aritmetines operacijas, tokias kaip sudėjimas ir atimtis, naudojant 1 papildinį. Šiame skyriuje mes išmoksime atlikti šias operacijas naudojant 2 papildinį.
statybininko dizaino modelis
Sudėjimas naudojant 2 komplementą
Galimi trys skirtingi atvejai, kai pridedame du dvejetainius skaičius naudodami 2 komplementą, kuris yra toks:
1 atvejis: teigiamo skaičiaus sudėjimas su neigiamu skaičiumi, kai teigiamas skaičius yra didesnis.
Iš pradžių suraskite nurodyto neigiamo skaičiaus 2 papildinį. Sumuokite gautą teigiamą skaičių. Jei gausime galutinį pernešimo 1 skaičių, skaičius bus teigiamas, o perdavimo bitas bus atmestas, o likę bitai bus galutinis rezultatas.
Pavyzdys: 1101 ir -1001
- Pirmiausia suraskite neigiamo skaičiaus 1001 papildinį 2. Taigi, norėdami rasti 2 papildinį, pakeiskite visus 0 į 1 ir visus 1 į 0 arba suraskite skaičiaus 1001 papildinį 1. Skaičiaus 1001 papildinys 1 yra 0110, ir prie rezultato 0110 LSB pridėkite 1. Taigi skaičiaus 1001 2 papildinys yra 0110+1=0111
- Sudėkite abu numerius, ty 1101 ir 0111;
1101+0111=1 0100 - Sudėjus abu skaičius, gauname pabaigos nešimą 1. Pabaigos nešimą atmetame. Taigi, abiejų skaičių pridėjimas yra 0100.
2 atvejis: teigiamos vertės pridėjimas prie neigiamos reikšmės, kai neigiamas skaičius yra didesnis.
Iš pradžių pridėkite teigiamą reikšmę su neigiamo skaičiaus 2 komplemento verte. Čia nerasta galutinio nešiojimo. Taigi, norėdami gauti galutinį rezultatą, imame rezultato 2 papildinį.
Pastaba: rezultatas yra neigiama reikšmė.
Pavyzdys: 1101 ir -1110
- Pirmiausia suraskite neigiamo skaičiaus 1110 2 papildinį. Taigi, norėdami rasti 2 komplementą, prie jo 1 komplemento vertės 0001 pridėkite 1 prie LSB.
0001+1=0010 - Sudėkite abu skaičius, ty 1101 ir 0010;
1101+0010= 1111 - Raskite rezultato 1110 2 papildinį, kuris yra galutinis rezultatas. Taigi, rezultato 1110 papildinys 2 yra 0001, o prieš skaičių pridėkite neigiamą ženklą, kad galėtume nustatyti, kad tai yra neigiamas skaičius.
3 atvejis: dviejų neigiamų skaičių pridėjimas
Šiuo atveju pirmiausia suraskite abiejų neigiamų skaičių 2 komplementą, o tada pridėsime abu šiuos papildomus skaičius. Tokiu atveju visada gausime end-around nešiojimą, kuris bus pridėtas prie LSB, o pamiršę galutinį rezultatą, paimsime 2 rezultato komplementą.
Pastaba: rezultatas yra neigiama reikšmė.
Pavyzdys: -1101 ir -1110 penkių bitų registre
- Pirmiausia suraskite neigiamų skaičių 01101 ir 01110 2 komplementą. Taigi, norėdami rasti 2 komplementą, prie šių skaičių 1 papildinio LSB pridedame 1. 2 skaičiaus 01110 papildinys yra 10010, o 01101 yra 10011.
- Sudedame abu komplemento skaičius, ty 10001 ir 10010;
10010+10011= 1 00101 - Sudėjus abu skaičius, gauname galutinį pernešimą 1. Šis perkėlimas atmetamas ir galutinis rezultatas yra rezultato 00101 2 papildinys. Taigi rezultato 00101 2 papildinys yra 11011, o pridedame neigiamą. pasirašykite prieš skaičių, kad galėtume nustatyti, kad tai neigiamas skaičius.
Atimtis naudojant 2 komplementą
Tai yra šie žingsniai, skirti atimti du dvejetainius skaičius naudojant 2 komplementą
- Pirmame žingsnyje raskite pogrupio 2 papildinį.
- Pridėkite papildymo numerį su minuend.
- Jei gauname perkėlimą sudėjus abu skaičius, tada šį perkėlimą atmetame ir rezultatas yra teigiamas, kitu atveju paimame 2 rezultato komplementą, kuris bus neigiamas.
1 pavyzdys: 10101 - 00111
Mes paimame 2 poskyrio 00111 papildinį, kuris yra 11001. Dabar juos susumuokite. Taigi,
10101+11001 =1 01110.
Aukščiau pateiktame rezultate gauname pernešimo bitą 1. Taigi šį nešimo bitą atmetame ir lieka galutinis rezultatas ir teigiamas skaičius.
2 pavyzdys: 10101–10111
Mes paimame 2 pogrupio 10111 papildinį, kuris išeina 01001. Dabar pridedame abu skaičius. Taigi,
10101+01001 =11110.
Aukščiau pateiktame rezultate mes negavome nešiojimo antgalio. Taigi apskaičiuokite rezultato 2 papildinį, ty 00010. Tai yra neigiamas skaičius ir galutinis atsakymas.