אתה נמצא כאן יסודות השפה  >>  אופרטורים  >>  אופרטורים על ביטים

אופרטורים על ביטים

אופרטורים על ביטים משנים את הביטים של הערכים. הם מדליקים (הופכים ל-1) ומכבים (הופכים ל-0) ביטים.

דוגמא שם הסבר
$a & $b וגם - AND ביטים שדלוקים גם ב-$a וגם ב-$b
$a | $b או - OR ביטים שדלוקים או ב-$a או ב-$b
$a ^ $b XOR ביטים שדלוקים או ב-$a או ב-$b אך לא בשניהם
~ $a שלילה - NOT ביטים שדלוקים ב-$a נכבים, וביטים שכבויים נדלקים
$a << $b הזזה שמאלה - SHIFT LEFT מזיז את הביטים של $a $b צעדים שמאלה. כל הזזה מכפילה את הערך המספרי ב-2.
$a >> $b הזזה ימינה - SHIFT RIGHT מזיז את הביטים של $a $b צעדים ימינה. כל הזזה מחלקת את הערך המספרי ב-2.

אם אופרטורים אלו פועלים על מחרוזות, אז הם מופעלים על כל זוג אותיות בהתאמה (שנמצאות באותו המיקום במחרוזות).

<?php
  echo (12^9);
/*בבסיס בינארי 12 מיוצג ע"י ...01100
בבסיס בינארי 9 מיוצג ע"י   ...01001
וערך ה-XOR שלהם הוא:  ...00101
שהוא המספר 5.
*/

  echo ("12"^"9");
/*כשאנו מפעילים XOR על מחרוזות, אנו מבצעים XOR על כל זוג תווים בהתאמה.
התו '1' מיוצג ע"י הערך ה-ASCII #49
התו '9' מיוצג ע"י הערך ה-ASCII #57
וערך ה-XOR ביניהם הוא הערך ה-ASCII #8 (התו backspace).
האות השנייה במחרוזת '12' לא מתאימה לאף אות במחרוזת '9',
לכן עושים XOR בין הערכים '2' ו-NULL, מה שיחזיר NULL.
*/

  echo ("hallo"^"hello");
/*המחרוזת "hallo" מיוצגת ע"י רצף הערכים: #104 #97  #108 #108 #111
המחרוזת "hello" מיוצגת ע"י רצף הערכים: #104 #101 #108 #108 #111
ערך ה-XOR ביניהם מיוצג ע"י רצף הערכים: #0 #4 #0 #0 #0
שהוא למעשה התו #4, ולא מחרוזת כי שאר האותיות הם ערכים ריקים, NULL.
*/

?>


תגובות בנושא

מסובך 06-12-02 08:01
 [ללא שם]
#235

:/

תגובה : מסובך 04-12-03 02:02
 גבריאל דעבול
#781

מי שרוצה לתכנת, כדי שילמד דבר ראשון תכנות בסיסי בספת תכנות כמו C או ++C.
אני התחלתי משם וזה נורא פשוט להבין.
כל מה שיש לי להבין זה התחביר והפונקציות, כי כל התכנות והמובן שלו כבר ברור לי

לכל אותם אנשים שחושבים.... 04-12-03 10:00
 [ללא שם]
#820

שכל מה שמעניין את מי שרוצה ללמוד PHP זה ללמוד
C++ אתם טועים חלאס לכתוב את זה, אם אני רוצה ללמוד C++ אני אלך למדריך C++. במקום לענות על השאלה או להסביר אתם שולחים אותנו?
אני מכיר מתכנת PHP שכופל פה את כולכם ואין לו שמץ כלוש ב CC++.

תגובה ל"לכל אותם אנשים..." 07-12-03 01:01
 דניאל שקורי
#935

סביר להניח שלאדם שיודע php במצוינות לא יהיה קשה ללמוד c++/c.

צודק 07-12-03 06:00
 אוהב את האתר הזה!
#946

תפסיקו לשלוח אנשים למדריכים אחרים.....
אני יודע VB וזה מאוד דומה, אז מה? אני ישלח למישהו למדריך לVB????
לא!!!!
נכון שזה עוזר, אבל אלו 2 שפות שונות ולא צריך ללמוד 1 כדי להבין את ה2

בתח שכן! 07-12-03 21:01
 לאון
#1003

אתה לא יכול לרכב על אופניים ללא גלגלים אבל אתה יכול לסכוב אותם אחריך זתומרת מומלץ ללמוד C לפני כי יהיה הרבה יותר קל להבין עם אתה לא יודע C יהיה לך יותר קשה להבין.. ולגבי VB זה לא ממש דומה זה יותר דומה ל PERL מאשר לVB

אז הוא 02-11-03 00:02
 [ללא שם]
#1278

ילך ללמוד C ושם יגידו לו שמומלץ ללמוד PHP כי זה דומה וזה יעזור

אתם טועים לגמרי 01-12-04 15:01
 מישהו
#1397

תחשבו על זה... אם מישהו לא מצליח ללמוד את זה בPHP, לא צריך להגיד לו ללמוד C, כי אם הוא לא מצליח ללמוד את זה בPHP, סביר להניח שהוא לא יבין את זה גם בC

חלאס עם השטויות 07-12-06 20:00
 ניר וקנין
#2703

דבר ראשון CC++ הן שפות שלפחות לדעתי מסובכות יותר
(אני לא סתם אומר אני יודע את שתיהן...)
דבר שני מה זה בכלל קשור... לדעת אחד יעזור כדי
לדעת את השני... אבל אתה עדיין יכול ללמוד בלי השני
וכמו שאמרו זה לולאה אין סופית יעזור לך לדעת C
בשביל PHP אז תלך לשם וכדי לדעת C יעזור משהוא אחר
אז לך לשם ובשביל זה צריך... וכו וכו... אז דיי
להריץ אנשים הם רוצים ללמוד PHP שילמדו PHP רוצים
משהוא אחר שילמדו משהוא אחר... בא לכם לעזור ולענות
על שאלות בשבילם יפה מצידכם לא בא לכם גם בסדר
אבל לא לתזז סתם אנשים...


לדף הקודםאופרטור ההשמה -הקודם
לתחילת הדףלתחילת הדף
הבא- אופרטורי השוואהלדף הבא