
05-04-2010, 19:14
|
|
|
|
חבר מתאריך: 05.04.10
הודעות: 5
|
|
|
חישובים בעזרת פעולות על סיביות בבסיס 2
היי כולם,
הנושא הוא : - חישובים בעזרת פעולות על סיביות בבסיס 2
אני מתקשה לממש את הפונקציה הבאה:
פונקציה המקבלת שני משתנים, X ו – n. הפונקציה תהפוך ב - X את n הסביות השמאליות ביותר ל- 1 ואת כל שאר הסביות תשאיר ללא שינוי.
לדוגמא:
F8( 4, 0x18A9B72C) = 0xF8A9B72C
ניתן להשתמש אך ורק באופרטורים - << >> + | & ^ ~ !
הפונקציה שלי נראית כך לבינתיים:
קוד:
int F8( int x, unsigned int n)
{
int num=0;
x = x | (((~num)-((~num)<<n)) << (N-n));
}
אבל זה נותן לי הודעת שגיאה לא ברורה שאני לא יודעת מה עושים במקרה כזה, ניסיתי כבר לרשון את זה בכל הצורות האפשריות:
expected primary-expression before '=' token
מה הכוונה?? ואיך עלי לשנות את הפונקציה כדי שתעבוד כמו שצריך??
תודה,
בטי
|