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

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 26-06-07, 20:40   # 1
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

[PHP] משהו שחשבתי עליו..

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

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

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

מה זה אומר? שמתי לב ש19 לינואר 2038 מופיע גם בדיונים על מייקרוסופט כמה פעמים.
זה אומר שעד 2038 יהיו חייבים להמציא נגלה חדשה של שפות תכנות?
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 26-06-07, 20:48   # 2
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

הערך הזה הוא כזה כי זה הערך המקסימלי של משתנה של 32 BIT שיכול להכיל גם מספרים שליליים.
עד אז אני מקווה שיעשו איזה איפוס לפונקצית time וגם סביר להניח שאז המעבדים יהיו 64 BIT ולא תהיה בעיה להשתמש ב 64 BIT למשתנה(וכבר היום אין כ"כ בעיה למי שרוצה)
  Reply With Quote
ישן 26-06-07, 21:00   # 3
Mg-maor
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
הודעות: 602

Mg-maor לא מחובר  

חח אני זוכר שהיתה בעיה כזאת במשחק גינדיס עם כמות נשק שאפשר לקנות בכל מקרה פתרו את זה שם אז יכולים לפתור גם פה
ואני מאמין שבגרסה הבאה זה יפתר
__________________
יצירת קשר:
Icq:314788512
Msn-Maorhag@walla.co.il
E-mail-maorhag@gmail.com
  Reply With Quote
ישן 26-06-07, 21:00   # 4
psycho
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 1,926

psycho לא מחובר  

זה כמו שיש תאריך ב1970 שקשור ליוניקס
פעם קראתי על זה והתעניינתי

אני כרגע אחרי הרבה זמן בלי שינה אז קשה לי לפרט.
  Reply With Quote
ישן 26-06-07, 21:00   # 5
Reality
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נהר
הודעות: 253

Reality לא מחובר  

אפשר להשתמש ב double לא? :x
  Reply With Quote
ישן 26-06-07, 21:13   # 6
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

אין שום סיבה שלא יאפסו את time()..

וגם כמו שבניה אמר, כנראה שיעברו עד אז ל64.
  Reply With Quote
ישן 26-06-07, 21:17   # 7
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי psycho צפה בהודעה
זה כמו שיש תאריך ב1970 שקשור ליוניקס
פעם קראתי על זה והתעניינתי

אני כרגע אחרי הרבה זמן בלי שינה אז קשה לי לפרט.
1970 זאת השנה שהמציאו את המנוע UNIX.. ובגלל זה time (val) מחושב בUNIX TIME - המרחק מהשנה בה יצרו את UNIX. אפשר לשים גם -3 ואז זה 3 שניות לפני שיצרו את יוניקס..

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

ציטוט:
אפשר להשתמש ב double לא? :X
אין שום קשר, float point (נקודה צפה, גם DOUBLE) זה למספרים לא שלמים, זה לא מכפיל את המספר או משהו.

ציטוט:
נכתב במקור על ידי 4ior צפה בהודעה
אין שום סיבה שלא יאפסו את time()..

וגם כמו שבניה אמר, כנראה שיעברו עד אז ל64.
אתה טועה, יש סיבה שלא יאפסו את TIME. צריכים את הערך הזה למערכות "ישנות" (המערכות שיש עכשיו).. אם יאפסו את TIME יהיה קשה מאוד לגרום לכל האתרים ברשת לעבור לTIME חדש. פשוט לא יעדכנו את המנוע.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 26-06-07, 21:45   # 8
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

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

בקשר לאיפוס time, מה לעשות, לפעמים צריך לנטוש דברים ישנים שמגבילים.
ואם יעשו מעבר מדורג יהיה אפשר להפתר מזה בלי יותר מידי בעיות.
  Reply With Quote
ישן 26-06-07, 21:47   # 9
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

או פונקציה חדשה
  Reply With Quote
ישן 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
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 19:45.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ