ערכתי לאחרונה בתאריך 05.03.10 בשעה 12:55 בברכה, ldan192
זכור כי גודל int הוא 4 בייט כאשר char הוא בייט אחד בלבד.
אם תעשה דבר כזה:
int i=0; scanf("%c", &i); // get 'a' for example printf("%c", i); // prints 'a'
|
זה יעבודאבל אם תרשום
int i=48291; scanf("%c", &i); // get 'a' for example printf("%c", i); // prints 'a' printf("%d", i); // won't print 97!
|
זה נובע מכך שהוא יכתוב רק בבייט הראשון את ה-97 ושאר 3 הבייטים יכילו את הביטים שמהמספר 48291.
כלומר, התוצאה תהיה זהה ל-
i = 48291 & (-16); // and with 111....110000 i += 97;
|
+/- טעויות חישוב שעשיתי
בברכה,
עידן