שיטת המשלים ל-2 היא שיטה לייצוג מספרים עם סימן בבסיס בינארי. הסיבית הגבוהה ביותר (MSB - Most Significant Bit, הסיבית המשמעותית ביותר) מייצגת את הסימן: 0 לחיובי ו-1 לשלילי. יתרונה הגדול הוא שניתן להשתמש באותו מעגל חיבור לכל המספרים, גם לשליליים; זה חוסך חומרה במעגלים דיגיטליים.
המשמעות היא שמחצית הקידודים של ייצוג ללא־סימן משומשים לייצוג מספרים שליליים. אם יש n סיביות, הטווח המיוצג הוא -2^{n-1} ≤ x ≤ 2^{n-1}-1. מספרים חיוביים מופיעים באותו אופן כמו בבינארי רגיל, כשה-MSB = 0. מספרים שליליים מקודדים כך שה-MSB = 1.
להמיר מספר שלילי למשלים ל-2 יש שתי שיטות שקולות:
1) להפוך כל סיבית (1→0, 0→1) ואז להוסיף 1.
2) לקרוא מהסיבית הנמוכה (הימנית) עד למצוא 1, להשאיר את החלק הזה כמו שהוא, ואז להפוך את כל הסיביות שמעליו.
דוגמה: המרה של -17 בייצוג בן 8 ביטים. ערכו החיובי של 17 הוא 00010001. הפיכה נותנת 11101110. מוסיפים 1 ומקבלים 11101111, זה הקידוד של -17.
חיבור בשיטה זו נעשה כמו חיבור בינארי רגיל. במקרה של חריגה מגודל הזיכרון (carry אחרון) בדרך כלל מדלגים עליו.
חיסור מתבצע על ידי חיבור ההפכי (הנגדי) של המחסר, כאשר ההפכי מחשבים בשיטת המשלים ל-2. כלומר לחסר x זהה לחבר את (-x).
דרך להבין את המשמעות היא לראות שכל ביט מקבל משקל של 2 בחזקת מיקומו, פרט ל-MSB שמקבל משקל של -2^{n-1}. למשל 101001 ב-n=6 שווה 2^0 + 2^3 - 2^5 = -23. כשמפתחים את רעיון ההיפוך וההוספה של אחד, רואים שההיפוך מעביר שימוש מהחזקות הנמוכות לחזקות הגבוהות, והוספת 1 מתאימה להשלמת הערך השלילי כפי שנדרש.
המשלים ל-2 היא דרך לכתוב מספרים חיוביים ושליליים בעזרת 0 ו-1. הסיבית השמאלית ביותר אומרת אם המספר שלילי או לא. 0 אומר חיובי ו-1 אומר שלילי.
יש גבול למספר שניתן לכתוב עם מספר מסוים של סיביות. חצי מהקודים משמשים לחיוביים וחצי לשליליים. כשמספר שלילי, הסיבית השמאלית היא 1.
כדי להפוך מספר לחיובי לשלילי עושים כך:
1) הופכים כל 0 ל-1 וכל 1 ל-0.
2) מוסיפים 1 לתוצאה.
דוגמה קצרה: 17 ב־8 ביט הוא 00010001. הופכים לקבל 11101110. מוסיפים 1 ומקבלים 11101111. זו הצורה של -17.
חיבור עושים כרגיל בבינארי. בשביל לחסר, מוסיפים את התוצאה השלילית של המספר שצריך לחסר.
הסיבה שזה עובד היא שהסיבית השמאלית שונה: היא נחשבת בערך שלילי. לכן כשהופכים סיביות ומוסיפים 1, מקבלים את הערך השלילי המתאים.
תגובות גולשים