Iepriekšējā sadaļā mēs uzzinājām, kā mēs varam veikt aritmētiskas darbības, piemēram, saskaitīšanu un atņemšanu, izmantojot 1 papildinājumu. Šajā sadaļā mēs iemācīsimies veikt šīs darbības, izmantojot 2 papildinājumu.
konstruktori java
Papildinājums, izmantojot 2 papildinājumu
Ir iespējami trīs dažādi gadījumi, kad mēs pievienojam divus bināros skaitļus, izmantojot 2 papildinājumu, kas ir šāds:
1. gadījums: pozitīvā skaitļa saskaitīšana ar negatīvu skaitli, ja pozitīvajam skaitlim ir lielāks lielums.
Sākumā atrodiet dotā negatīvā skaitļa 2 papildinājumu. Summējiet ar doto pozitīvo skaitli. Ja mēs iegūstam beigu pārnesumu 1, tad skaitlis būs pozitīvs skaitlis un pārnēsāšanas bits tiks atmests, un atlikušie biti ir gala rezultāts.
Piemērs: 1101 un -1001
- Vispirms atrodiet negatīvā skaitļa 1001 2 papildinājumu. Tātad, lai atrastu 2 papildinājumu, mainiet visus 0 pret 1 un visus 1 pret 0 vai atrodiet skaitļa 1001 papildinājumu 1. Skaitļa 1001 papildinājums 1 ir 0110, un pievienojiet 1 rezultāta 0110 LSB. Tātad skaitļa 1001 2 papildinājums ir 0110+1=0111
- Pievienojiet abus ciparus, t.i., 1101 un 0111;
1101+0111=1 0100 - Saskaitot abus skaitļus, iegūstam beigu pārnesumu 1. Nobeiguma pārnesumu mēs atmetam. Tātad abu skaitļu saskaitīšana ir 0100.
2. gadījums: pozitīvās vērtības pievienošana negatīvai vērtībai, ja negatīvajam skaitlim ir lielāks lielums.
Sākotnēji pievienojiet pozitīvu vērtību ar negatīvā skaitļa 2 komplementa vērtību. Šeit netiek atrasta pārvietošana līdz galam. Tātad, lai iegūtu gala rezultātu, mēs ņemam rezultāta papildinājumu 2.
Piezīme: rezultāts ir negatīva vērtība.
Piemērs: 1101 un -1110
- Vispirms atrodiet negatīvā skaitļa 1110 2 papildinājumu. Tātad, lai atrastu 2 papildinājumu, pievienojiet 1 LSB no tā 1 komplementa vērtības 0001.
0001+1=0010 - Pievienojiet abus ciparus, t.i., 1101 un 0010;
1101+0010= 1111 - Atrodiet rezultāta 1110 2 papildinājumu, kas ir gala rezultāts. Tātad, rezultāta 1110 2 papildinājums ir 0001, un pirms skaitļa pievienojiet negatīvu zīmi, lai mēs varētu noteikt, ka tas ir negatīvs skaitlis.
3. gadījums: divu negatīvu skaitļu pievienošana
Šajā gadījumā vispirms atrodiet abu negatīvo skaitļu 2 papildinājumu, un tad mēs pievienosim abus šos komplementa skaitļus. Šajā gadījumā mēs vienmēr saņemsim end-around carry, kas tiks pievienots LSB, un, aizmirstot gala rezultātu, mēs ņemsim rezultāta 2 papildinājumu.
Piezīme: rezultāts ir negatīva vērtība.
Piemērs: -1101 un -1110 piecu bitu reģistrā
- Vispirms atrodiet negatīvo skaitļu 01101 un 01110 2 papildinājumu. Tātad, lai atrastu 2 papildinājumu, mēs pievienojam 1 šo skaitļu 1 papildinājuma LSB. 2 skaitļa 01110 papildinājums ir 10010 un 01101 ir 10011.
- Mēs pievienojam abus komplementa skaitļus, t.i., 10001 un 10010;
10010+10011= 100101 - Saskaitot abus skaitļus, iegūstam beigu pārnesumu 1. Šis pārnesums tiek atmests, un gala rezultāts ir rezultāta 00101 2.s papildinājums. Tātad rezultāta 00101 2. papildinājums ir 11011, un mēs pievienojam negatīvu. pierakstieties pirms skaitļa, lai mēs varētu noteikt, ka tas ir negatīvs skaitlis.
Atņemšana, izmantojot 2 papildinājumu
Šīs ir šādas darbības, lai atņemtu divus bināros skaitļus, izmantojot 2 papildinājumu
- Pirmajā darbībā atrodiet apakšdaļas 2 papildinājumu.
- Pievienojiet komplementa numuru ar minuend.
- Ja mēs iegūstam pārnesumu, saskaitot abus skaitļus, tad šo pārnešanu atmetam, un rezultāts ir pozitīvs, pretējā gadījumā ņemam rezultāta 2 papildinājumu, kas būs negatīvs.
1. piemērs: 10101-00111
Mēs ņemam apakšrindas 00111 papildinājumu 2, kas ir 11001. Tagad tos summējiet. Tātad,
10101+11001 =1 01110.
Iepriekš minētajā rezultātā mēs iegūstam pārnēsāšanas bitu 1. Tātad mēs atmetam šo pārneses bitu, un atlikušais ir gala rezultāts un pozitīvs skaitlis.
2. piemērs: 10101–10111
Mēs ņemam apakšrindas 10111 papildinājumu 2, kas iznāk 01001. Tagad mēs pievienojam abus skaitļus. Tātad,
10101+01001 =11110.
Iepriekš minētajā rezultātā mēs nesaņēmām pārnēsāšanu. Tātad aprēķiniet rezultāta 2 papildinājumu, t.i., 00010. Tas ir negatīvs skaitlis un galīgā atbilde.