פעולה על סיביות – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
הרחבה
תגית: גרשיים שגויים
תגית: גרשיים שגויים
שורה 132:
''סיבוב עם סחיבה'' דומה ל''סיבוב ללא סחיבה'', אך שני הקצוות של האוגר מופרדים על ידי [[אוגר הדגלים|דגל הנשא]]. הסיבית שמוזזת פנימה (בצד כלשהו) היא הערך הישן של דגל הנשא, והסיבית שמוזזת החוצה (בצד השני) הופכת להיות הערך החדש של דגל הנשא.
 
''סיבוב עם סחיבה'' פעם יחידה יכול לדמות הזזה לוגית או הזזה אריתמטית של מקום אחד על ידי הגדרת דגל הנשא לפני כן. לדוגמה, אם דגל הנשא מכיל 0, אז {{ללא גלישה|<code>x סובב-לימין-עם-נשיאה-באחד</code>}} הוא הזזה לוגית לימין, ואם דגל הנשא כולל עותק של סיבית הסימן, אז {{ללא גלישה|<code>x סיבוב-לימין-עם-נשיאה-באחד</code>}} הוא הזזה אריתמטית לימין. מסיבה זאת, בחלק מה[[מיקרו-בקר|מיקרו-בקרים]] כמו [[PCI|בקר PCI]] יש אפשרות לעשות רק ''סיבוב'' ו''סיבוב עם סחיבה'', ואין אפשרות לעשות הזזה לוגית או אריתמטית.
 
סיבוב עם סחיבה שימושי במיוחד כאשר מבצעים הזזות על מספרים שגדולים יותר מ[[מילה (מחשב)|גודל המילה]] הטבעי של המעבד, מכיוון שאם מספר גדול מאוחסן בשני אוגרים, הסיבית שמוזזת החוצה מאחד הצדדים של האוגר הראשון חייבת להכנס בצד השני של האוגר השני. בעזרת סיבוב עם סחיבה, סיבית זו נשמרת בדגל הנשא במהלך ההזזה הראשונה, מה שמאפשר לה לזוז פנימה בהזזה השנייה בלי הכנה נוספת.