08-11-2007, 22:58
|
|
L'enfer, c'est les autres
|
|
חבר מתאריך: 21.11.01
הודעות: 29,242
|
|
עשית כאן סמטוחה שלמה...
קודם כל, ההקדמה למספרי הקסה 0x זו המצאה של הקומפיילר, ואתה לא מכניס את זה למחרוזת int. יש דרכים לעבודה עם ביטים בC, וזו לא מה שעשית. אתה יכול כן להכניס ביטים בודדים למשתנה בצורה הזו:
char a = 0x1A
וכדי לעשות את מה שאתה רוצה, תיצור את y כמשתנה
unsigned char y;
ואת הלולאה אתה כותב
for( y = 0; y < 256; y++) {
while((sensor & 0xff) == y)
הסבר: משתנה unsigned char הוא משתנה של 8 ביט בלי ביט סימון +/-. משתנה כזה מכיל 256 אפשרויות, שזה מ 0 עד 255, ולכן זה המספר שאתה מריץ בלולאה. הלולאה בעצם רצה על כל 256 האפשרויות שיכולות להיות בו. בקשר לשאר התוכנית, לא ממש הבנתי מה קורה שם. הביטוי sensor & 0xff יתן תמיד את הערך של sensor, כך שזה חסר משמעות. בנוסף, הכנסת נתונים למחרוזת שלך עם == שאו שזה משהו שאני לא מכיר, או שהתכוונת ל =.
חוץ מזה אתה לא בפורום הנכון. אתה נמצא בפורום תוכנה ולא תיכנות, וכדי לקבל תשובה טובה יותר, פנה לשם http://www.fresh.co.il/vBulletin/forumdisplay.php?f=31
_____________________________________
..
נערך לאחרונה ע"י זיו בתאריך 08-11-2007 בשעה 23:10.
|