משהו יודע מה <<< אומר ?

jefet200

New member
משהו יודע מה <<< אומר ?

ראיתי את הסימון הזה בקוד .. אבל לא מצאתי מה הפעולה אומרת return (n >>> 1) ^ n; תודה מראש
 

vemer

New member
אם אני לא טועה הסימן הזה מסמל

הזזה בינארית ימינה
 

vemer

New member
הזזה בינארית

כל מספר עשרוני ניתן לתרגם למספר בינארי (מורכב מ-0 ו-1) זה אומר שאני דוחף את המספר ימינה ע"י כך שאני מוסיף 0 מצד שמאל. עבור עשרוני ניתן להתיחס לזה כחלוקה ב-2 למשל: המספר 10 בבינארי יוצג כ- 1010 לאחר הזזה ימינה 0101 שזה בעצם המספר 5 בעשרוני בהצלחה
 

IP yuval

New member
ב C אין כזה דבר <<<.

<< זה הזזה בינרית ימינה (כפי שvemer הסביר). ^ מוציא לך, לכל ביט, 1 אם שני הביטים שונים, ו0 אם הם זהים. אפשר לקרוא על זה עוד בגוגל: Bitwise Operators.
 

untrots

New member
יש לזה משמעות ב-java

הסימן הזה קיים ב-java בגלל שאין שם תיפוסים מסוג unsigned. מה שהוא עושה זה להזיז את כל הביטים ימינה ותמיד להכניס אפס משמאל. בניגוד ל-<< שתמיד משכפל את הבית השמאלי במילה וכך בעצם שומר על הסימן ושקול לחלוקה בחזקות של 2. מקווה שזה מובן.
 
למעלה