סיבוב הביטים של מספר I
שיעור 12 מתוך 17 בקורס מניפולציה על ביטים של Coddy.
מה המשמעות של סיבוב הביטים?
בואו נבין בעזרת המחשה.

בהמחשה שלמעלה לקחנו את (20)10 , שהוא (10100)2 בבינארית, סובבנו אותו פעם אחת ימינה וקיבלנו את (01010)2, שהוא (10)10. מה יקרה אם נסובב אותו שמאלה? נקבל את (40)10.
איך ייתכן שהתוצאה היא 40?
ובכן, במערכות המחשב שלנו המספרים מאוחסנים במרחב של 32 ביטים, 16 ביטים או 8 ביטים. זה דומה לסיבוב שראיתם בהמחשה שלמעלה, אבל המספר (20)10 במחשב של 16 ביטים יוצב בזיכרון בתור (000000000010100)2 ,סך הכול 16 ביטים כדי לשמור את המספר 20 בזיכרון, ולכן כשנסובב את המספר הבינארי הזה נצטרך להביא בחשבון את כל 16 הביטים ולא רק 5 ביטים. לכן, כשננסה לסובב מספר, ייתכן שנקבל תוצאות שונות, בהתאם למחשב שבו משתמשים, כלומר אם הוא של 32 ביטים, 16 ביטים או 8 ביטים.
בשיעור הבא נבין איך מניפולציה על ביטים תעזור לנו לסובב ביטים.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
כל השיעורים ביחידה מניפולציה על ביטים
2אלגוריתמים על ביטים
חזקה של 2מספר שמופיע מספר אי-זוגי של פעמיםמספר הביטים הדולקיםסיבוב הביטים של מספר Iסיבוב הביטים של מספר IIתרגלו בעצמכם: קומפיילר C++ אונליין