בחלק הקודם שלנו, למדנו כיצד נוכל לבצע פעולות אריתמטיות כגון חיבור וחיסור באמצעות המשלים של 1. בחלק זה נלמד לבצע את הפעולות הללו באמצעות המשלים של 2.
עיצוב תאריך ב-java
הוספה באמצעות משלים של 2
ישנם שלושה מקרים שונים אפשריים כאשר אנו מוסיפים שני מספרים בינאריים באמצעות המשלים של 2, שהוא כדלקמן:
מקרה 1: חיבור של המספר החיובי עם מספר שלילי כאשר המספר החיובי הוא בגודל גדול יותר.
תחילה מצא את המשלים של 2 של המספר השלילי הנתון. סכמו עם המספר החיובי הנתון. אם נקבל את ה-End-around carry 1 אז המספר יהיה מספר חיובי ו-carry bit יימחק והסיביות הנותרות הן התוצאה הסופית.
דוגמה: 1101 ו-1001
- ראשית, מצא את המשלים של 2 של המספר השלילי 1001. לכן, כדי למצוא את המשלים של 2, שנה את כל 0 ל-1 ואת כל 1 ל-0 או מצא את המשלים של 1 של המספר 1001. המשלים של 1 של המספר 1001 הוא 0110, ו הוסף 1 ל-LSB של התוצאה 0110. אז המשלים של ה-2 של מספר 1001 הוא 0110+1=0111
- הוסף את שני המספרים, כלומר, 1101 ו-0111;
1101+0111=1 0100 - על ידי הוספת שני המספרים, נקבל את ה-end-around carry 1. אנו פוסלים את ה-end-around carry. אז, התוספת של שני המספרים היא 0100.
מקרה 2: הוספה של הערך החיובי עם ערך שלילי כאשר למספר השלילי יש גודל גבוה יותר.
בתחילה, הוסף ערך חיובי עם הערך המשלים של ה-2 של המספר השלילי. כאן, לא נמצא נשיאה מקצה לקצה. אז, אנחנו לוקחים את ההשלמה של ה-2 של התוצאה כדי לקבל את התוצאה הסופית.
הערה: התוצאה היא ערך שלילי.
דוגמה: 1101 ו-1110
- ראשית, מצא את המשלים של ה-2 של המספר השלילי 1110. לכן, למציאת ההשלמה של 2, הוסף 1 ל-LSB של ערך ההשלמה של ה-1 שלו 0001.
0001+1=0010 - הוסף את שני המספרים, כלומר, 1101 ו-0010;
1101+0010= 1111 - מצא את המשלים של ה-2 של התוצאה 1110 שהיא התוצאה הסופית. אז, ההשלמה של ה-2 לתוצאה 1110 היא 0001, והוסיפו סימן שלילי לפני המספר כדי שנוכל לזהות שזהו מספר שלילי.
מקרה 3: חיבור של שני מספרים שליליים
במקרה זה, ראשית, מצא את המשלים של 2 של שני המספרים השליליים, ולאחר מכן נוסיף את שני המספרים המשלימים הללו. במקרה זה, תמיד נקבל את ה-end-around carry, אשר יתווסף ל-LSB, ואם שכחנו את התוצאה הסופית, ניקח את ההשלמה של ה-2 לתוצאה.
הערה: התוצאה היא ערך שלילי.
דוגמה: -1101 ו -1110 באוגר של חמש סיביות
- ראשית, מצא את המשלים של 2 של המספרים השליליים 01101 ו-01110. לכן, למציאת ההשלמה של 2, נוסיף 1 ל-LSB של המשלים של ה-1 של המספרים הללו. המשלים של 2 למספר 01110 הוא 10010, ו-01101 הוא 10011.
- נוסיף את שני המספרים המשלים, כלומר, 10001 ו-10010;
10010+10011= 1 00101 - על ידי הוספת שני המספרים, נקבל את הסחיבה 1. הסחיבה הזו נמחקת והתוצאה הסופית היא המשלים 2.s של התוצאה 00101. לכן, ההשלמה של ה-2 של התוצאה 00101 היא 11011, ונוסיף שלילית סימן לפני המספר כדי שנוכל לזהות שמדובר במספר שלילי.
חיסור באמצעות משלים של 2
אלו הם השלבים הבאים להפחתת שני מספרים בינאריים באמצעות המשלים של 2
- בשלב הראשון, מצא את המשלים של ה-2 של המשנה.
- הוסף את המספר המשלים עם התפריט.
- אם נקבל את השיא על ידי הוספת שני המספרים, אז נזרוק את הסחיבה הזו והתוצאה חיובית אחרת קחו השלמה של 2 של התוצאה שתהיה שלילית.
דוגמה 1: 10101 - 00111
אנחנו לוקחים את המשלים של 2 של subtrahend 00111, שהוא 11001. עכשיו, סכם אותם. כך,
10101+11001 =1 01110.
בתוצאה שלמעלה, נקבל את סיבית ה-carry 1. אז אנו פוסלים את סיבית ה-carrierה הזו והנותרת היא התוצאה הסופית ומספר חיובי.
דוגמה 2: 10101 - 10111
אנחנו לוקחים את המשלים של 2 של subtrahend 10111, שיוצא 01001. כעת, נוסיף את שני המספרים. כך,
10101+01001 =11110.
בתוצאה שלעיל, לא קיבלנו את קצה הנשיאה. אז חשב את ההשלמה של ה-2 של התוצאה, כלומר, 00010. זה המספר השלילי והתשובה הסופית.