שאלת ביטים בראיון

virlomi

New member
שאלת ביטים בראיון

מתוך ארבעה ראיונות שעשיתי השבוע בשלושה חזרה השאלה בורסיות שונות. יש לעשות פעולה על byte לפעמים להפוך לפעמים לספור את מספר הביטים. הפיתרון לשמור מערך - שב שומרים את ההיפוך, מספר בביטים הדולקיםץ האינדקס זה ה byte. שעליו נעשתה הפעולה.
 

ilan1998

New member
לא הבנתי את השאלה

אולי תנסה לנסח אותה יותר ברור...?
 

virlomi

New member
זו שאלה ותשובה

השאלה : תן אלגוריתים מהיר ככל האפשר כדי להפוך Byte מ 00100001 ל 10000100 . זו יכולה להיות גם כל שאלה אחרת שעוסקת במניפולציה על ביטים למשל למצוא כמה רצפים של 0 ו 1 יש. הפיתרון הוא לא אלגוריתים ספצפי - אלה הרעיון שהדרך המהירה ביותר היא לשמור את התשובות לכל האפשריות במערך. למשל בתא מ 31 (00100001) יהיה הערך 132 (10000100)
 

hirsh3

New member
הפיתרון והשאלה לא ברורים קצת מבלבל

ולמה לא לעשות פעולות על ביטים?
 

אנדרי ז

New member
בגלל שפעולות על ביטים

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

cprog

New member
הפתרון טוב אבל ייתכן שיש פיספוס.

זה שאת שומרת את כל האפשרויות במערך ומוצאת את הפתרון לפי האינדקס - זה טוב, זה עובד, וזה מהיר. אבל איפה בדיוק יש כאן פעולות על ביטים? את בעצם לא מפגינה ידע בפעולות על ביטים בפתרון שלך, לכן ייתכן שזה לא מה שמחפשים. צריך לעשות את זה עם shift של הבייט ו bitmask. <---B7B6B5B4B3B2B1B0 בייט קלט | SHIFT LEFT | | SHIFT RIGHT |-->B7B6B5B4B3B2B1B0 תוצאה
 
למעלה