logo

Összeadás és kivonás 2 komplementerével

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

  1. 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
  2. Adja hozzá mindkét számot, azaz az 1101-et és a 0111-et;
    1101+0111=1 0100
  3. 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

  1. 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
  2. Adja hozzá mindkét számot, azaz 1101 és 0010;
    1101+0010= 1111
  3. 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

  1. 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.
  2. Összeadjuk mindkét komplementszámot, azaz 10001 és 10010;
    10010+10011= 1 00101
  3. 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.