פורסם 2005 בינואר 520 שנים יש לי מספר עשרוני שאני רוצה להדפיס כמספר בינארי (האורך לא קבוע ואי אפשר לתחום אותו) האם יש איזה פונקציה או פקודה ב printf שעוזרת להדפיס מספר כזה ?
פורסם 2005 בינואר 520 שנים תבנה פונקציה שלוקחת כקלט את המספר העשרוני מחלקת אותו ב2 ומדפיסה למסך את השארית וחוזר חלילה עד שאתה מגיע ל1המספר המתקבל בצורה זו הוא הייצוג הבינארי של המספר העשרוני
פורסם 2005 בינואר 520 שנים אין כזאת פונקציה בשפה (קצת מוזר לא?) לכן אתה צריך ללכת על הכיוון ש-rosher הציע ולבנות פונ' כזו לבד.
פורסם 2005 בינואר 520 שנים מחבר הבעיה היא שיש צורך להפוך את סדר ה1\0 לאחר הדפסה כדי לכבל מספר בינארי חוקי. פונקציה כזו אין ביעה לכתוב אך הבעיה היא ההפיכה
פורסם 2005 בינואר 520 שנים אז במקום לכתוב פונ' שמדפיסה בינארי, תכתוב פונ' שמחזירה מחרוזת של 0,1 ואז תכתוב פונ' נוספת שהופכת את המחרוזת.
פורסם 2005 בינואר 520 שנים מחבר הגעתי בעזרתו של חבר לפתרון יעיל יותר :תרגום למספר בינארי ואז להדפיס בסדר הפוך בעזרת רקורסיה כאשר ההדפסה מתבצעת לאחר הקריאה לרקורסיה.(אין שימוש בString)
פורסם 2005 בינואר 520 שנים אתה יכול לעשות את זה בלולאה פשוטה בלי שום מחרוזת עם שימוש באופרטורים בולאייניםהרעיון הוא לשמור מספרi=2^nולעשות לולאה שכל צעד שלה אתה מדפיס את המספר שלך & i עם הזזה של n סיביות ימינה ולחלק את i הזה ב-2 (את החילוק אפשר לעשות מהר יותר אם תעשה i=i<<1 שזה הזזה של סיבית אחת ימינה)
פורסם 2005 בינואר 520 שנים בהתחלהi=2^nכאשר n יכול להיות חצי האורך של integer (כלומר n=15)בכל איטרציה אתה מחלק את i ב-2 (חילוק מהיר ע"י הזזה של סיבית אחת ימינה) ומקטין אינדקס n שאתה שומר ב-1
פורסם 2005 בינואר 520 שנים תשתמש בפונקציה itoa(int num,char* str,int base) הפונקציה מקבלת מספר num ובסיס הפלט ושמה ב-str את המחרוזת שהיה יצוג בינרי של num בבסיס base.למשל itoa(9,str,2)ישים ב-str:1001http://www.cplusplus.com/ref/cstdlib/itoa.html
פורסם 2005 בינואר 620 שנים שימוש ברקורסיה הוא גרועעדיף לעשות לולאהרקורסיה בכל מקרה, סותמת את הזיכרון, לא עושים רקורסיה בדר"כ בתכנות, אלא רק לאלגוריתמיקה, (או לעצים בחלק מהמקרים)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.