נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: צריך הסבר על קוד ב בC++

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 17 October 2007 בשעה 11:35 | IP רשוּם
ציטוט אורח

קוד:
  for( unsigned int i = 1; i < = 100; i++ )
if( i & 0x00000001 )
cout << i<<",";

הקוד הזה מדפיס את כל המספרים האי זוגיים מ1 עד 100, עכשיו השאלה שלי, איך הוא יודע שהם אי זוגיים ?

למה הוא בודק i & 0x0000001 ואיפה אני יכול ללמוד את הדבר הזה שבודקים ככה?

חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 17 October 2007 בשעה 12:20 | IP רשוּם
ציטוט צחי@

האופרטור & המופעל מימין ל-int משמש כפעולת bitwise AND - הכוונה שכל ביט ב-i עובר פעולת AND לוגית עם הביט המתאים לו בביטוי שמימין ל-&. הביטוי הוא למעשה שווה ערך ל-1 (רשום בהקסהדצימלי, אבל הוא 1 גם בבסיס בינארי ובבסיס עשרוני).

פעולת & עם ביטוי זה למעשה מאפסת את כל הביטים של i למעט הביט הימני ביותר.

אם הביט הימני ביותר הוא 1 אז המספר הוא אי זוגי, אחרת המספר הוא זוגי. זאת תכונה של מספרים בינאריים.

אני רק אזכיר שכדי שהתנאי של ה-if יתקיים, הביטוי שבתוכו צריך להיות שונה מאפס, אחרת התנאי לא מתקיים.

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 17 October 2007 בשעה 12:41 | IP רשוּם
ציטוט יוסי

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

לגבי מידע נוסף בנוסא תחפש בגוגל :operators in c++

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 17 October 2007 בשעה 12:51 | IP רשוּם
ציטוט צחי@

הוא לא יוחזר כי הבדיקה מתחילה מ-1 , וגם אם היא הייתה מתחילה מ-0, הוא לא היה מודפס כי 1 & 0 שווה ל-0.

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה