שפת C, שאלה לגבי אופרטורים לוגיים... - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שפת C, שאלה לגבי אופרטורים לוגיים...


GangstaRap

Recommended Posts

אהלן חבר'ה.

רציתי לשאול מה ההבדל בין האופרטור && ל-&, ובין || ל-|

במילים אחרות, מה ההבדל בין אם אני מעריך ביטוי ע"י שני אופרטורים (כמו שאני רגיל) לבין אם אני מעריך ביטוי ע"י אופרטור אחד.

לדוגמא:

1&0
1&&0

לשניהם יהיה הערך 0.

1|0
1||0

לשניהם יהיה הערך 1.

אז מדוע אנחנו משתמשים באופרטור פעמיים?

תודה וסופ"ש נעים!

קישור לתוכן
שתף באתרים אחרים

במקרה של 0 ו-1 באמת אין הבדל. ההבדל הוא במספרים יותר גדולים.

האופרטורים | ו-& הם אופרטורים bitwise, כלומר הם עובדים ביט-ביט על הייצוג הבינארי של המספר.

http://en.wikipedia.org/wiki/Bitwise_operation

האופרטורים && ו-|| עובדים על הערך הלוגי של המספר: 0 זה שקר, כל השאר (דהיינו כל מה שאינו 0) הוא אמת.

לדוגמה, תנסה להדפיס את התוצאה של 2 & 4 ואז את התוצאה של 2 && 4 ותראה את ההבדל.

בשפות מתקדמות יותר יש טיפוס בשם boolean שיודע להחזיק ערכים לוגיים (אמת ושקר). בחלקן האופרטורים && ו-|| פועלים רק על הטיפוס הזה, ולא על טיפוס int, בעוד שהאופרטורים | ו-& עובדים רק על טיפוסים מספריים, ולא על boolean.

קישור לתוכן
שתף באתרים אחרים

בעיקרון -

&& - מיועד ל"שאלות" לוגיות כאשר שתי ה"כניסות" x,y לדוגמא x && y הם "1" או "0"

& - פעולת AND בינארי בין שני מספרים כאשר שתי ה"כניסות" x,y הם יכולות להיות מספרים בינארים כמו x=101 y=100

ההבדל יכול להיות במקרה שכזה :

x=101 y=010

במקרה של :

x && y התשובה היא True --> פעולה לוגית

x & y התשובה היא False -->פעולת AND בינארי

בהצלחה

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...