View Single Post
ישן 26-06-07, 22:11   # 10
Kfir.G
חבר וותיק
 
Kfir.G's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
הודעות: 1,059
שלח הודעה באמצעות ICO אל Kfir.G

Kfir.G לא מחובר  

ציטוט:
נכתב במקור על ידי BlueNosE צפה בהודעה
למי שלא יודע יש לPHP מספר (אינטיגר) מקסימלי בו היא תומכת.
המספר נמצא במשתנה PHP_INT_MAX ונכון לעכשיו הוא עומד על 2147483647.
כל מספר שתנסו לעבוד עליו מעל המספר הזה פשוט לא יעבוד.

עכשיו בשביל לשים עוגיה שתפעל לעוד הרבה זמן אני משתמש בPHP_INT_MAX בערך של הזמן - זה הערך הכי גבוה שאפשר לשים שם.

PHP_INT_MAX עם הפונקצייה mktime מגיע ל19 ינואר 2038.
מה שאומר שאחרי התאריך הזה לא יהיה אפשר יותר להשתמש בPHP בהרבה היבטים - לוחות שנה, עוגיות ועוד.

מה זה אומר? שמתי לב ש19 לינואר 2038 מופיע גם בדיונים על מייקרוסופט כמה פעמים.
זה אומר שעד 2038 יהיו חייבים להמציא נגלה חדשה של שפות תכנות?
טוב קודם כל נראה לי שכדאי שאני אסביר לך למה הגבול במשתנה שציינת הוא משהו כי נוצר לי הרושם שאתה לא מבין למה. מאחר ואתה פונה לdouble word כלומר ל32 סיביות או 4 בטים ואתה בוחר לפנות למספרים מסומנים כלומר חיובים ושלילים המספר מתקבל מהנוסחה הנ"ל
2^(n-1)-1
אם נציב במקום n את המספר 32 נקבל 2^31-1=2,147,483,648 ומכאן נובע שתחום המספרים הוא -2,147,483,648 עד 2,147,483,647. אני מקווה שעכשיו זה ברור ועכשיו אני אסביר לגבי ההמשך.

double word היא היחידה הגדולה ביותר שקיימת כיום (MB זה בערך מיליון בייטים, GB זה בערך מיליאד בייטים וכך הלאה). מה שזה אומר זה לא שלא יהיה אפשר להשתמש בשפות התכנות שקיימות היום גם מאוחר יותר אלא שיהיה צורך להרחיב את המשתנה שציינת ומאחר והמשתנה הזה הוא כבר בגודל הגדול ביותר שקיים יהיה צורך ליצור משתנה עזר שיעבוד יחד איתו כדי לחשב את הנתונים. דוגמה דומה לזה היא הכתובת המוחלטת שנוצרת במעבד משילוב של משתני הסיגמנטים וIP.

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

מקווה שהבנת

ציטוט:
נכתב במקור על ידי בניה צפה בהודעה
הערך הזה הוא כזה כי זה הערך המקסימלי של משתנה של 32 BIT שיכול להכיל גם מספרים שליליים.
עד אז אני מקווה שיעשו איזה איפוס לפונקצית time וגם סביר להניח שאז המעבדים יהיו 64 BIT ולא תהיה בעיה להשתמש ב 64 BIT למשתנה(וכבר היום אין כ"כ בעיה למי שרוצה)
64 סיביות זה צירוף של שני double word אין יחידה כזאת. ולכן כדי שהמעבדים יתמכו בדבר כזה בפני עצמו יש לשנות את הדרך שבה עובד המחשב של ימינו (השיטה הבינארית) וזה אומר שיהיה צורך לכתוב כל שפת תכנות שקיימת מחדש ולכן לא נראה לי שמישהו יעשה דבר כזה.
__________________
פיג'מה
משחקים

Last edited by Kfir.G; 26-06-07 at 22:16..
  Reply With Quote