הכנסת מספרים למערך ע"י ביטים - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

הכנסת מספרים למערך ע"י ביטים


itai2k

Recommended Posts

שלום לכולם, אני אמור לבנות תוכנית אינטראקטיבית למשתמש.

הוא אמור רשום

read_set A,45,23,7,6

וכדומה.... ואני אמור להכניס את המספרים לתוך מערך ע"י ייצוג של ביטים כלומר... (המשתמש יכול להכניס רק את המספרים 0-127)

כלומר לעשות מערך של char בגודל 16 (0-15) ואם הוא מזין את המספר 12 לדוגמא

אז אני אמור ללכת לתא 12 (שמיקום שלו הוא 2 במערך)

והלדליק את הביט....

אני יודע את כל הפקודות של הביטים:

>>

<<

|

וכל אלה... אני פשוט לא מבין איך הפקודות עובודת... אם מישהו יכול לתת לי דוגמא איך עובדים עם זה אני יצליח להבין ולעשות את העבודה!

כל טיפ או עזרה עיזור מלא!

תודה לכולם

קישור לתוכן
שתף באתרים אחרים

תודה רבה על התגובה המהירה...

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

איך אני מפעיל את אותם סימנים << , >> , | , &

בקוד...

קישור לתוכן
שתף באתרים אחרים

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

אבל בתא הראשון של המערך יש 0-7 לא? הרי char זה 8 ביטים..

נכון, אבל התא הראשון הוא תא מספר 0, כי מתחילים לספור מ-0. אז התא ה"שני" הוא תא מספר 1.

ולא הבנתי איך כותבים, אם תוכל לכתוב לי רק את השורת קוד כדי שאני יבין איך זה מתנהל רק הדלקה זה יהיה מצויין.

אז תקרא את הת'רד שקישרתי אליו. כבר עניתי על כל השאלות האלה שם.

קישור לתוכן
שתף באתרים אחרים

היי שניצל..

קראתי מספר פעמים את התרד שהראת לי. הוא באמת עזר ונתן לי את התמונה הכללית...

אני לא מתעצל לקרוא ואם אני שואל כנראה שלא הבנתי...

אם המשתמש הזין את הספרה 2, אז אני נגש לתא הראשון ומציב 00100000 ?

int A[1]=00100000 ?

אנחנו לא ממש למדנו ביטים כמו שצריך ואני לא מצליח להבין איך זה עובד! קראתי את במליון מקומות באינטרנט כולל מה שקישרת פה.

אבל אני לא מבין איך זה עובד! איך מדליקים ומכבים? מה הפקודה? הבנתי את הסימנים אבל איך זה מתבצע בתוכנית עצמה.

אני מקווה שיש לך זמן וכוח להסביר לי כי אני לא מצליח להבין כמו שצריך בת'רד ששלחת.

קישור לתוכן
שתף באתרים אחרים

בהחלט קראתי וגם הבנתי...

אני פשוט לא מצליח להבין מהן שורת הפקודות שעלי לבצע מקבלת המספר עד להדלקת הביט... מעשית.. איך אני נגש לביט

כלומר קיבלתי את מספר 2 איך אני כותב את זה שאני רוצה ללכת לביט מספר 3 (כולמר 2) הופך אותו ל1 במערך שנקרא A.

שוב אני אציין שאני יודע את הכל תאורתית מעשית לא מצליח לחשוב על איך לבצע את זה.

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

שוב, אני לא מתעצל, אם הייתי יודע הייתי כותב במקום לשאול שאלות בפורום.

מקווה שאתה מבין, תודה.

קישור לתוכן
שתף באתרים אחרים

כמו שרשמתי שם, אתה לא יכול לגשת "ישירות" לביט.

אתה יכול לעשות לדוגמה z = x | y שזה שקול ל"הדלק ב-x את כל המקומות התואמים למקומות שדלוקים ב-y, ושים את התוצאה ב-z". ככה שאם ב-y דולקים הביטים במקומות 1 ו-6 אז אחרי הפעולה הזו z יהיה שווה ל-x, פרט לביטים במקומות 1 ו-6 שיהיו דולקים (בין אם הם היו דולקים ב-x או לא).

באותו אופן אתה יכול לעשות z = x & y שזה שקול ל"כבה ב-x את כל המקומות התואמים למקומות שכבויים ב-y ושים את התוצאה ב-z", ככה שאם ב-y הביטים במקומות 2 ו-4 כבויים אז אחרי הפעולה הזו z יהיה שווה ל-x, פרט לביטים במקומות 2 ו-4 שיהיו כבויים (בין אם הם היו דלוקים או לא ב-x).

באמצעות פעולות הזזה אתה יכול ליצור את y ככה שיכיל רק אפסים, פרט לביט אחד שדולק. תחשוב איך אתה משלב את שני הדברים האלה כדי להדליק ביט אחד בודד ב-x.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...