|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
אין כמו ב127.0.0.1
|
[PHP] משהו שחשבתי עליו..
למי שלא יודע יש לPHP מספר (אינטיגר) מקסימלי בו היא תומכת.
המספר נמצא במשתנה PHP_INT_MAX ונכון לעכשיו הוא עומד על 2147483647. כל מספר שתנסו לעבוד עליו מעל המספר הזה פשוט לא יעבוד. עכשיו בשביל לשים עוגיה שתפעל לעוד הרבה זמן אני משתמש בPHP_INT_MAX בערך של הזמן - זה הערך הכי גבוה שאפשר לשים שם. PHP_INT_MAX עם הפונקצייה mktime מגיע ל19 ינואר 2038. מה שאומר שאחרי התאריך הזה לא יהיה אפשר יותר להשתמש בPHP בהרבה היבטים - לוחות שנה, עוגיות ועוד. מה זה אומר? שמתי לב ש19 לינואר 2038 מופיע גם בדיונים על מייקרוסופט כמה פעמים. זה אומר שעד 2038 יהיו חייבים להמציא נגלה חדשה של שפות תכנות? |
![]() |
![]() |
# 2 |
משתמש - היכל התהילה
|
הערך הזה הוא כזה כי זה הערך המקסימלי של משתנה של 32 BIT שיכול להכיל גם מספרים שליליים.
עד אז אני מקווה שיעשו איזה איפוס לפונקצית time וגם סביר להניח שאז המעבדים יהיו 64 BIT ולא תהיה בעיה להשתמש ב 64 BIT למשתנה(וכבר היום אין כ"כ בעיה למי שרוצה)
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 3 |
חבר מתקדם
|
חח אני זוכר שהיתה בעיה כזאת במשחק גינדיס עם כמות נשק שאפשר לקנות בכל מקרה פתרו את זה שם אז יכולים לפתור גם פה
ואני מאמין שבגרסה הבאה זה יפתר |
![]() |
![]() |
# 4 |
הוסטסניון
|
זה כמו שיש תאריך ב1970 שקשור ליוניקס
פעם קראתי על זה והתעניינתי אני כרגע אחרי הרבה זמן בלי שינה אז קשה לי לפרט. |
![]() |
![]() |
# 5 |
חבר בקהילה
|
אפשר להשתמש ב double לא? :x
|
![]() |
![]() |
# 6 |
חבר וותיק
|
אין שום סיבה שלא יאפסו את time()..
וגם כמו שבניה אמר, כנראה שיעברו עד אז ל64. |
![]() |
![]() |
# 7 | |||
אין כמו ב127.0.0.1
|
ציטוט:
ציטוט:
בכל מקרה אם עד אז יהיו בשוק רק מעבדי 64 ביט תיווצר בעיה חדשה, שבה התאריך המקסימלי הוא כפול מזה וכו' וכו'.. צריך להיות פתרון אבסולוטי לא? ציטוט:
אתה טועה, יש סיבה שלא יאפסו את TIME. צריכים את הערך הזה למערכות "ישנות" (המערכות שיש עכשיו).. אם יאפסו את TIME יהיה קשה מאוד לגרום לכל האתרים ברשת לעבור לTIME חדש. פשוט לא יעדכנו את המנוע. |
|||
![]() |
![]() |
# 8 |
משתמש - היכל התהילה
|
נראה לי שאפשר לכתוב איזה משהו שידע לחשב מעל 32 BIT במעבדים 32 BIT רק שזה יהיה פחות יעיל.
אם אתה צריך את זה, אני בטוח שאפשר למצוא דברים בגוגל. וגם תחשוב לכמה שנים 64BIT יספיק ![]() בקשר לאיפוס time, מה לעשות, לפעמים צריך לנטוש דברים ישנים שמגבילים. ואם יעשו מעבר מדורג יהיה אפשר להפתר מזה בלי יותר מידי בעיות.
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 9 |
חבר וותיק
|
או פונקציה חדשה
![]() |
![]() |
![]() |
# 10 | |
חבר וותיק
|
ציטוט:
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 היא השפה הקרובה ביותר לשפת מכונה שקיימת היא תיתן לך מושג דיי ברור איך המחשב באמת עובד. מקווה שהבנת ![]() 64 סיביות זה צירוף של שני double word אין יחידה כזאת. ולכן כדי שהמעבדים יתמכו בדבר כזה בפני עצמו יש לשנות את הדרך שבה עובד המחשב של ימינו (השיטה הבינארית) וזה אומר שיהיה צורך לכתוב כל שפת תכנות שקיימת מחדש ולכן לא נראה לי שמישהו יעשה דבר כזה. Last edited by Kfir.G; 26-06-07 at 22:16.. |
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|