Előző részünkben megtanultuk, hogyan hajthatunk végre aritmetikai műveleteket, például összeadást és kivonást az 1-es komplementer használatával. Ebben a részben megtanuljuk ezeket a műveleteket a 2-es komplementer használatával végrehajtani.
továbbfejlesztve a loop java számára
Összeadás 2 komplementerével
Három különböző eset lehetséges, amikor két bináris számot adunk össze a 2 komplementerével, ami a következő:
1. eset: A pozitív szám összeadása egy negatív számmal, amikor a pozitív szám nagyobb.
Kezdetben keresse meg az adott negatív szám 2-es komplementerét. Adjon összeget a megadott pozitív számmal. Ha az end-around carry 1-et kapjuk, akkor a szám pozitív szám lesz, és a hordozóbitet eldobjuk, és a maradék bitek a végeredmény.
Példa: 1101 és -1001
- Először keresse meg az 1001 negatív szám 2-es komplementerét. Tehát a 2 komplementerének megtalálásához változtassa meg mind a 0-t 1-re és mind az 1-et 0-ra, vagy keresse meg az 1001 szám 1-es komplementerét. Az 1001 szám 1-es komplementere 0110, és adjunk hozzá 1-et a 0110-es eredmény LSB-jéhez. Tehát az 1001-es szám 2-es komplementere 0110+1=0111
- Adja hozzá mindkét számot, azaz az 1101-et és a 0111-et;
1101+0111=1 0100 - Mindkét szám összeadásával megkapjuk az end-around carry 1-et. Az end-around carryt eldobjuk. Tehát mindkét szám összeadása 0100.
2. eset: A pozitív érték hozzáadása negatív értékkel, amikor a negatív szám nagyobb.
Kezdetben adjunk hozzá egy pozitív értéket a negatív szám 2-es komplementer értékéhez. Itt nem található körbehordás. Tehát az eredmény 2-es komplementerét vesszük, hogy megkapjuk a végeredményt.
Megjegyzés: Az eredmény negatív érték.
Példa: 1101 és -1110
- Először keresse meg az 1110 negatív szám 2-es komplementerét. Tehát a 2-es komplementerének megtalálásához adjunk hozzá 1-et az 1-es komplementer értékének 0001 LSB-jéhez.
0001+1=0010 - Adja hozzá mindkét számot, azaz 1101 és 0010;
1101+0010= 1111 - Keresse meg az 1110 eredmény 2-es komplemensét, amely a végeredmény. Tehát az 1110 eredmény 2-es komplementere 0001, és a szám elé adjunk egy negatív előjelet, hogy megállapíthassuk, hogy negatív szám.
3. eset: Két negatív szám összeadása
Ebben az esetben először keressük meg mindkét negatív szám 2-es komplementerét, majd adjuk össze mindkét komplementszámot. Ebben az esetben mindig megkapjuk az end-around carry-t, ami hozzáadódik az LSB-hez, és a végeredményt elfelejtve a 2-es kiegészítést vesszük az eredményből.
Megjegyzés: Az eredmény negatív érték.
Példa: -1101 és -1110 ötbites regiszterben
- Először keressük meg a 01101 és 01110 negatív számok 2-es komplementerét. Tehát a 2-es komplementerének megtalálásához adunk 1-et ezeknek a számoknak az 1-es komplementerének LSB-jéhez. A 01110 szám 2 komplementere 10010, a 01101 pedig 10011.
- Összeadjuk mindkét komplementszámot, azaz 10001 és 10010;
10010+10011= 1 00101 - Ha mindkét számot összeadjuk, megkapjuk az 1-es átvitelt. Ezt az átvitelt eldobjuk, és a végeredmény a 00101 eredmény 2. komplementere. Tehát a 00101 eredmény 2-es komplementere 11011, és hozzáadunk egy negatívot. jele a szám előtt, hogy megállapíthassuk, hogy negatív számról van szó.
Kivonás 2 komplementerével
A következő lépések a két bináris szám kivonása a 2-es komplementer használatával
- Első lépésben keresse meg a részrész 2-es kiegészítését.
- Adja hozzá a komplementszámot a minuenddel.
- Ha mindkét szám összeadásával megkapjuk az átvitelt, akkor ezt a hordozót eldobjuk, és az eredmény pozitív, különben vegyük az eredmény 2-es komplementerét, amely negatív lesz.
1. példa: 10101-00111
A 00111 részrész 2-es komplementerét vesszük, ami 11001. Most összegezzük őket. Így,
10101+11001 =1 01110.
A fenti eredményben az 1-es hordozóbitet kapjuk. Ezt a hordozóbitet tehát eldobjuk, és a maradék a végeredmény és egy pozitív szám.
2. példa: 10101-10111
Az 10111 részrész 2-es komplementerét vesszük, amiből 01001 jön ki. Most hozzáadjuk mindkét számot. Így,
10101+01001 =11110.
A fenti eredménynél nem kaptuk meg a hordozó bitet. Tehát számítsa ki az eredmény 2-es komplementerét, azaz 00010-et. Ez a negatív szám és a végső válasz.