לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #6  
ישן 05-07-2012, 23:16
צלמית המשתמש של ShoobyD
  משתמש זכר ShoobyD מנהל ShoobyD אינו מחובר  
מנהל משבראש, בלשנות, תכנות ויהדות
 
חבר מתאריך: 04.06.06
הודעות: 33,130
שלח הודעה דרך MSN אל ShoobyD Facebook profile LinkedIn profile Follow me...
בתגובה להודעה מספר 5 שנכתבה על ידי Yanivpp שמתחילה ב "מצטער לגבי האי נוחות..."

כמו שאמרו, לא צריך לבצע המרה מ־char ל־int כי בשפת C תווים שקולים למספרים שלמים, רק שהם בגודל בית אחד.
לדוגמא התו 'A' הוא למעשה המספר 65 (דצימלי), לא שאפשר להמיר אותו אליו, אלא שהוא ממש המספר.
.
בגלל זה הביטויים הבאים הם כשרים:
c>='a' && c<='z'‎
c = 'd' + 2
c = '5' - '0'‎

שים לב שהתו '0', לדוגמא, אינו המספר 0, אלא '0'==48 (דצימלי).
מכיוון שכך, אם תרצה להגיע מתו של ספרה מסויימת, לערכה של אותה ספרה, יש להפחית ממנה את התו '0'. זה הודות לכך שתווי הספרות (כמו גם תווי הא״ב האנגלי) מסודרים ברצף.

לדוגמא '7' == 55.
ולכן אם נחסיר ממנו את התו '0' נקבל: ‎'7'-'0' = 55-48 = 7.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 10-07-2012, 13:16
צלמית המשתמש של פסטן
  פסטן פסטן אינו מחובר  
 
חבר מתאריך: 14.12.09
הודעות: 9,751
בתגובה להודעה מספר 6 שנכתבה על ידי ShoobyD שמתחילה ב "כמו שאמרו, לא צריך לבצע המרה..."

ציטוט:
במקור נכתב על ידי ShoobyD
כמו שאמרו, לא צריך לבצע המרה מ־char ל־int כי בשפת C תווים שקולים למספרים שלמים, רק שהם בגודל בית אחד.
לדוגמא התו 'A' הוא למעשה המספר 65 (דצימלי), לא שאפשר להמיר אותו אליו, אלא שהוא ממש המספר.
המממ, לא. ממש לא.
  • character constant בשפת C (יעני דבר כזה: 'A') בשפת C הוא מטיפוס int (סעיף 6.4.4.4 פסקה 10).
  • int חייב להיות מסוגל להחזיק לפחות 2 בחזקת 16 ערכים (סעיף 5.2.4.2.1), מה שאומר שהוא חייב להיות בן 16 ביט לכל הפחות (ביט זה משהו שמסוגל להחזיק בדיוק אחד משני ערכים, סעיף 3.5).
  • הגודל של byte אינו מוגדר בדיוק (סעיפים 3.6, 5.2.1, וכו'), אבל בהנחה שאנחנו מדברים על byte בגודל 8 ביט (מה שנקרא octet), מסתבר שלתו (שמוקף במרכאות בודדות) יש טיפוס שלוקח לפחות 2 בתים.
  • אם נצרף לזה את העובדה ש-int צריך להיות "בגודל הטבעי" בהתאם לסוג המכונה עליה רצים (סעיף 6.2.5 פסקה 5), זה אומר שעל מעבדי x86 מודרניים (כולל x86-64) הוא כנראה יהיה בגודל 32 ביט, זה 4 בתים.
(כמובן שיכול להיות מצב בו CHAR_BIT הוא 64, והגודל והייצוג של char, short, int, long, long long הם זהים, אבל נצא מנקודת הנחה שלא על זה מדובר.)

http://www.open-std.org/jtc1/sc22/w.../docs/n1124.pdf

אתה יכול גם לבדוק דבר כזה: http://ideone.com/M5w1j


הערה: ב-CPP דווקא שינו את זה, והטיפוס של דבר כמו 'A' הוא char.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה(קרדיט למרשי)
אמר לה ינאי מלכא לדביתיה אל תתיראי מן הפרושין ולא ממי שאינן פרושין אלא מן הצבועין שדומין לפרושין שמעשיהן כמעשה זמרי ומבקשין שכר כפנחס

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 13:53

הדף נוצר ב 0.06 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר