עבור לתוכן

משתנים ב -C

Featured Replies

פורסם

המממ אני צריך משתנה שהדיוק שלו היא לפחות 100 ספרות לכל כיוון...

איך קוראים לאחד כזה? ואיך מציגים?

פורסם

נראה לי long...

והמשתנה שלו זה %ld

אבל ממש לא בטוח...

פורסם
  • מחבר

long double הוא 19 ספרות....

פורסם

אתה יכול להשתשמש ב-unsigend למספרים חיוביים וב-signed לשליליים.

עוד אפשרות היא אם המשתמש מזין את כל המאה ספרות היא להשתמש במערך...

פורסם
  • מחבר

unsigend וsigend לא נותן הרבה...

אני צריך לעשות חישוב עם זה אז אפשר להשתמש במערך?

פורסם

דיוק של 100 ספרות הוא מיותר.

אלא אם כן אתה מתכנת מסלול של כניסת חללית לאטמוספירה או משהו...

פורסם

הוא לא בידיוק מכתנת מסלול של כניסת חללית לאטמוספירה.. סתם עוד משהו קטן שהוא הוא הוסיף לרשימה שלו.. נכון עומר? :D

הוא צריך לחשב כמה שניות במדיוק הוא יכול לישון ליד פצצת אטום

פורסם

תנסה לממש את זה ע"י מחרוזת באורך 200(+1 עם ה\0). לא כל כך יעיל אבל זה מה יש.

פורסם

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

פורסם
  • מחבר

איך אני מחשב עם מחרוזת?

רושם את המשתנה עצמו רגיל ככה?

פורסם

איך אני מחשב עם מחרוזת?

רושם את המשתנה עצמו רגיל ככה?

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

אתה או פשוט מקבל את המספרים בתור מחרוזת טקסט ב SCANF (או לוקח מספר והופך אותו למחרוזת ספרה ספרה), ואז עושה את הפעולות הרלוונטיות כאשר במקום להתייחס למספר כמספר, אתה ניגש לספרה ספרה דרך תאים במערך (אם אתה צריך גם נקודות צפות וכו' זה עוד יותר לא נעים :) ).

פורסם

אתה מחבר כמו שלימדו ביסודי: אתה הולך לספרה הכי קטנה (10^-100) ומחבר. אם יש קרי, אתה מוסיף אותו ל- 100^-99 וכו.

פורסם
  • מחבר

הממ..לא הבנתי...

פורסם

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

floating point זה לא הדבר הכי נחמד בעולם (אתה צריך לתאם את החזקות לפני חיבור וחיסור), לכן יותר קל להשתמש במה שנקרא fixed-point. כלומר - אתה כאילו עובד עם integers, אבל בעצם חלק קבוע מהזיכרון הוא החלק של השבר.

אתה יכול לעשות לך את החיים טיפה יותר קלים (על חשבון זיכרון שטיפוס הנתונים יתפוס) ולהחזיק מערך של 200 ספרות (100 לפני הנקודה, 100 אחרי) ולעבוד בבסיס עשרוני.

אתה יכול גם לעבוד בבסיס בינארי - 200 ספרות יתפסו 666 ביטים (מספר הספרות חלקי לוג 2) - שאותם אתה יכול להחזיר במערך של 21 long ints.

הייתרון בלעבוד בינארית הוא שאתה יכול לעבוד ביט מול ביט.

ארכיון

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

דיונים חדשים