הגדרת משתנה בינארי

The Mystique

New member
הגדרת משתנה בינארי

נניח שאני רוצה לטפל במשתנה בינארי בתוכנית, מאיזה טיפוס אני מגדירה אותו ? לדוגמא 00110011 = X אני רוצה להשתמש ב->> או << או כל אופרנד אחר לטיפול בסיביות. ואח"כ להדפיסו למסך המשתמש. איך מדפיסים אותו ?
 

ihovav

New member
תשובה :

1 -> כך משתנה נומרי יכול לשמש להחלת ערכים בינאריים - כי למעשה זו הצורה בה הוא מחזיק את הערך שלו 2 -> אם את מתכנתת ב C - את צריכה להסתכל ב MSDN - אני חיפשתי שם קצת ולא מצאתי אבל אני יודע שיש אפשרות כזו
 

The Mystique

New member
אני בלי MSDN

ובאתר של מיקרוסופט קשה למצא והכל מאד מאד איטי שם ולא ידידותי. אני חייבת לדעת מה הייצוג למספר בינארי אם בכלל קיים כזה ב-C. כמו כן אני אשמח לקבל לינק להורדת קובץ MSDN, אפילו אם זה קובץ גדול, אני אסתדר כבר. יאללה חברייס תעזרו לי !!! נואשת
 

atron_il

New member
חברה נו באמת

חברה למה צריך MSDN מגדירים משתנה INT כמו X=010101010B בוסיפים B בסוף ויש משתנה בינארי אבל בדרך כלל עובדים עם HEX כמו למשל X=0x98ABC וכך ועושים כלמני פעולות כרגיל
 

The Mystique

New member
באמת באמת למה זה לא עובד

זה לא עובר קומפילציה אחת השגיאות : bad suffix on number המהדר חושב ש B זה עוד משתנה חדש. לרגע שמחתי אם יש לך דוגמא לתוכנית שרצה עם זה אז תעלה אותה פה בפורום בבקשה. אולי זה יעזור לי תודה
 

erezsh

New member
מה הבעיה?

אי פעם שמעתם על הפעולות הבינאריות- | & ? נגיד הגדרנו: unsigned char c; אז, c|=1 יפעיל את ביט 0, c|=2 יפעיל את ביט 0, c|=4 יפעיל את ביט 2 וככה הלאה. כמו כן, c&1 יבדוק אם הביט הראשון פועל, c&2 יבדוק אם הביט השני פועל, וכך הלאה. סולם ביטים: ביט 0 - 1 ביט 1 - 2 ביט 2 - 4 ביט 3 - 8 ביט 4 - 16 ביט 5 - 32 ביט 6 - 64 ביט 7 - 128
 

erezsh

New member
תיקון קל

c|=1 יפעיל את ביט 0, c|=2 יפעיל את ביט 1, c|=4 יפעיל את ביט 2 וככה הלאה. כמו כן, c&1 יבדוק אם הביט 0 פועל, c&2 יבדוק אם הביט 1 פועל, וכך הלאה. ( פועל: ערכו הוא 1 )
 
פעולות בינאריות ב-C

אני לא מכיר שיטה לכתיבה ישירה של ערך בינארי ב-C, וככל הידוע לי אין דבר כזה. כדי בכל זאת להשתמש בערכים בינאריים צריך להשתמש בפונקציות הבינאריות של C (דווקא בקטע הזה יש תמיכה טובה) וכדי להדפיס ערכים בינאריים צריך לכתוב פונקציה (פשוטה בד"כ) בעצמך. להלן מצורף קטע קוד פשוט שכתבתי בדקה, ומדגים שימוש בערך בינארי והדפסתו. השתמשתי במשתנה UNSIGNED CHAR כי הוא נוח לייצוג 8 ביט, וגם יש פונקציה להדפסת הערך בבינארי. זו רק דוגמה, ויש מספר דרכים לממש ערכים בינאריים. רצוי להתאים את הפונקציה לתוכנית הכללית בשביל לקבל את הביצועיות הטובה ביותר. ביי.
 

The Mystique

New member
גיליוטין

אתה צודק, גם אני לא מצאתי שום דרך לייצוג מספרים בינארים ב-C. זה לא קצת מצחיק שלשפה כזאת נפוצה אין אלמנט חיוני ושמיש כמו זה ? לדעתי סביר להניח שיש לזה איזה שהיא סיבה. אם מישהו יודע שישתף גם אותי, זה מסקרן. ולגבי הפתרון שלי, גם אני כתבתי לי איזה תוכנית שממירה לבינארי, עם ממשק קליל למשתמש. לכל המעוניין מצורף כאן הקובץ.
 
למעלה