עבור לתוכן

שאלה ב C# בנוגע ל"הפרדת" מספר ועוד משהו

Featured Replies

פורסם

אהלן,

לאחרונה התחלתי ללמוד C#..

חשבתי לבנות תוכנית שמקבלת מספר בינארי, לדוגמא 111, ומחזירה את המספר בעשרוני(7)..

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

מה שאומר, שאם אני מקבל מספר כמו 11001 אני צריך להפריד אותו ל 1 0 0 1 1 ואני לא יודע איך אפשר לעשות כזה דבר..

עוד דבר, מישהו מכיר אתר עם כל מיני פרויקטים קטנים עם קוד המקור שלהם ככה שאפשר לעבור על הקוד וללמוד ממנו?

תודה!

פורסם

אם אתה קורא את המספר בתור מחרוזת, אתה יכול פשוט לעבור על התווים שלו מההתחלה ועד הסוף, בדיוק כמו מערך (חוץ מזה שהאורך שלו נקרא Length ולא Count).

אם אתה קורא את המספר הבינארי בתור מספר, אז אתה צריך "לפרק" אותו לספרות ע"י לולאה של פעולות מודולו (אופרטור %) וחלוקה, או לחילופין פשוט להמיר אותו למחרוזת ע"י ToString.

וחוץ מזה, יש פונקציה שעושה את זה בשבילך:

http://msdn.microsoft.com/en-us/library/1k20k614.aspx

אבל אני מניח שאתה רוצה לנסות לכתוב את זה בעצמך :)

פורסם
  • מחבר

אחלה, תודה !

חידשת לי האפשרות לעבור על תווים במחרוזת

בקשר לשאלה השניה, מישהו מכיר אתר כזה?

פורסם

http://www.codeproject.com

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

פורסם

דרך יותר "יפה" היא לעבור עם לולאה על המספר, ובעזרת חוקי חלוקה ושארית דיי פשוטים תוכל לפצל את המספר לספרות, לצורך העניין, להכניס את מה שקיבלת למשתנה זמני, ליצור משתנה שיעלה בכל פעם ב-1 (מייצג את המיקום), ומשתנה שיכיל את המספר הנדרש (מתחיל מ-0), ויעודכן בכל סיבוב.

פורסם

אתה צודק דוד, אבל שניצל כבר אמר את זה :P

פורסם

אתה צודק דוד, אבל שניצל כבר אמר את זה :P

צודק, טעות שלי :bash:

ארכיון

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

דיונים חדשים