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

נושא: בעיה בבינארי ו C++

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


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

קוד:
cout << 0x0000010 << endl;

איך זה הגיוני שזה מדפיס לי 16 ולא 2 ?

לפי מה שאני יודע אחד בבינארי זה 001

ושתים זה 010 ... אז איך זה שזה מדפיס לי 16? ואיך אני מדפיס 2 למשל בבינארי ככה?

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


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

בגלל ש-0x זה סימן של בסיס 16 (הקסדצימלי)
חזרה לתחילת העמוד הצג את כרטיס החבר של שדג חפש הודעות אחרות של שדג בקר בדף הבית של שדג
 
אורח
אורח
אורח


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

אז איך אני מדפיס 2 בצורה כזאת של בינארי?
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 17 October 2007 בשעה 22:08 | IP רשוּם
ציטוט shoshan

למשל כדי להדפיס את n :
 
קוד:
for (int i=31; i>=0; i--) {
     int bit = ((n >> i) & 1);
     cout << bit;
}


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אלידע
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 17 October 2007
משתמש: מנותק/ת
הודעות: 4
נשלח בתאריך: 18 October 2007 בשעה 11:40 | IP רשוּם
ציטוט אלידע

לדעתי מספיק לרשום כך:
cout << 0xb0000010 << endl;
חזרה לתחילת העמוד הצג את כרטיס החבר של אלידע חפש הודעות אחרות של אלידע
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 18 October 2007 בשעה 11:50 | IP רשוּם
ציטוט shoshan

לא יודע איך הגיעה הדעה הזאתי, אבל לא...

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
לוק
אורח
אורח


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

לא מכיר פונקציה מובנית שעושה את זה (מפתיע לא?!).
אבל, אתה יכול לתרגם בסיס עשרוני לבינארי כפי שעושים בהעברת בסיסים:
מטעמי נוחות נניח שהמס' הוא בעל 8 סיביות והמספרים חיוביים בלבד. (לשם התמודדות
עם מס' שליליים יש לחשב את המשלים ל-2 ולהוסיף 1 בסיבית ה - msb).


void BinaryPrint(int num, int num_of_bits)

{

      if (num == 0)

      {

            while(num_of_bits > 0)

            {

                  cout<<0;

                  --num_of_bits;

            }

            return;

      }

      BinaryPrint(num / 2, --num_of_bits);

      cout<<num%2;

}

 

void main()

{

      BinaryPrint(15,8);

      cout<<endl;

}


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

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

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

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