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

תוכן שנמחק תוכן שנוסף
שורה 120:
| [[Image:Rotate right.svg|thumb|150px|הזזה מעגלית ימינה]]
|}
סוג נוסף של הזזה הוא ''הזזה מעגלית'' או ''סיבוב סיביות''. בפעולה זו, סיביות "מסתובבות" כאילו הקצה הימני והקצה השמאלי היו מחוברים. הערך שמוזז פנימה מצד ימין במהלך הזזה שמאלה הוא הערך שמוזז החוצה משמאל, ולהפך. פעולה זו שימושית במיוחד אם רוצים לשמור את כל הסיביות הקיימות בערך, ונפוצה מאוד ב[[קריפטוגרפיה]].
 
'''הזזה מעגלית''' (cyclic shift) הנקראת גם '''סיבוב סיביות''' (bitwise rotation), שימושית במספר תחומים ביניהם [[קומבינטוריקה]], [[קריפטוגרפיה]], [[תורת הקודים]] במיוחד כאשר רוצים לשמר את כל סיביות הערך.
 
הזזה מעגלית היא "סידור מחדש" של כל הכניסות ב[[‏n-יה סדורה]] על ידי העתקה של כל כניסה פוזיציה אחת לשמאלה או לימינה ותכולת הכניסה האחרונה מועתקת לראשונה. בפעולה זו, הסיביות "מסתובבות" כאילו הקצה הימני והקצה השמאלי היו מחוברים במעין מעגל כמו שעון. למעשה הזזה מעגלית היא סוג של [[תמורה ציקלית]] שהיא עצמה מקרה פרטי של [[תמורה (מתמטיקה)|תמורה]]. בניסוח מתמטי אפשר להציג הזזה מעגלית כפונקציה <math>\sigma</math> על <math>n</math> כניסות המחרוזת. למשל אם נתונה מחרוזת באורך <math>n</math> סיביות, אם מתחילים מימין (כלומר הסיבית הכי פחות משמעותית נמצאת בפוזיציה 0):
 
הזזה מעגלית לשמאל היא:
:<math>\sigma(i)\equiv (i+1)\text{ modulo }n</math> עבור כל הכניסות <math>i=0,1,2...</math> עד <math>n</math>.
 
הזזה מעגלית לימין היא:
:<math>\sigma(i)\equiv (i-1)\text{ modulo }n</math> עבור כל הכניסות <math>i=0,1,2...</math> עד <math>n</math>.
 
חזרה על הזזה מעגלית <math>n</math> פעמים תחזיר את מצב המחרוזת לקדמותו. במחשב ניתן לבצע ההזה מעגלית עם אופרטור הזזה לימין או לשמאל המובנה בשפות התיכנות הנפוצות ומיוצג בדרך כלל על ידי הסימן ">>", כך:
:'''<tt>(value << count) | (value >> (32 - count))</tt>'''
:'''<tt>(value >> count) | (value << (32 - count))</tt>'''
 
<!-- סוג נוסף של הזזה הוא ''הזזה מעגלית'' או ''סיבוב סיביות''. בפעולה זו, סיביות "מסתובבות" כאילו הקצה הימני והקצה השמאלי היו מחוברים. הערך שמוזז פנימה מצד ימין במהלך הזזה שמאלה הוא הערך שמוזז החוצה משמאל, ולהפך. פעולה זו שימושית במיוחד אם רוצים לשמור את כל הסיביות הקיימות בערך, ונפוצה מאוד ב[[קריפטוגרפיה]].
-->
{{-}}