צריך לדעת איך מדפיסים מספר בינארי ב-C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

צריך לדעת איך מדפיסים מספר בינארי ב-C


SOLIDUS SNAKE

Recommended Posts

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

המספר המתקבל בצורה זו הוא הייצוג הבינארי של המספר העשרוני

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

הגעתי בעזרתו של חבר לפתרון יעיל יותר :

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

(אין שימוש בString)

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

אתה יכול לעשות את זה בלולאה פשוטה בלי שום מחרוזת עם שימוש באופרטורים בולאיינים

הרעיון הוא לשמור מספר

i=2^n

ולעשות לולאה שכל צעד שלה אתה מדפיס את המספר שלך & i עם הזזה של n סיביות ימינה ולחלק את i הזה ב-2 (את החילוק אפשר לעשות מהר יותר אם תעשה i=i<<1 שזה הזזה של סיבית אחת ימינה)

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

בהתחלה

i=2^n

כאשר n יכול להיות חצי האורך של integer (כלומר n=15)

בכל איטרציה אתה מחלק את i ב-2 (חילוק מהיר ע"י הזזה של סיבית אחת ימינה) ומקטין אינדקס n שאתה שומר ב-1

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

שימוש ברקורסיה הוא גרוע

עדיף לעשות לולאה

רקורסיה בכל מקרה, סותמת את הזיכרון, לא עושים רקורסיה בדר"כ בתכנות, אלא רק לאלגוריתמיקה, (או לעצים בחלק מהמקרים)

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

ארכיון

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

×
  • צור חדש...