שאלות מסוג Bitwise בד"כ נהוגות בחברות עם מוצרי Real-Time (סל
ע"י: admin
שאלות מסוג Bitwise בד"כ נהוגות בחברות עם מוצרי Real-Time (סלולאר, מצלמות, תקשורת...)
1. איך ניתן להפוך מספר bitwise (יעני MSB LSB וגם LSB MSB)?
2. איך ניתן לבדוק האם מספר הוא חזקה של 2?
איך ניתן לבדוק כמה 1ים יש במספר?
3. הדרך המהירה ביותר להכפיל מספר (ע"י שימוש באופרטורים: '+', '<<', '>>' וללא '*')
4. איך ל"הדליק" את כל הביטים במספר
5. איך לבדוק אם מס' בינארי "מכיל" מס' בינארי אחר (לדוגמא: 01001010 "מכיל" את 1001)
6. איך לבדוק אם הביט ה- nי במס' בינארי "דלוק
שאלות על singly linked list בד"כ נהוגות בחברות עם מוצרי תוכנה (Server) – למרות שזה לכאורה פשוט – זה לעיתים מבלבל – זו שיטה של המראיינים לקבל רושם ראשוני מהמרואיין...
7. הגדר איבר כללי (המכיל int – לשם הפשטות) ברשימה והראה איך ניתן להפוך את הרשימה?
לפני 8 שנים
ע"י: 1_אורח_כללי
זה מה שעשיתי בהצעת פיתרון הראשונה, אבל אם ניקח את הדוגמא:
x=1001 וy=01011010
ובודקים אם x מוכל בy,
אז כל פעם בודקים x == x & y ואם לא מתקיים אז מחלקים את y ב2.
איטרציה ראשונה - לא מתקיים.
באיטרציה שניה - y=0101101, כשבודקים את התנאי נשים לב שbitwise and של x עם 1101 יתן את x וכל שאר הספרות מתאפסות ובעצם מקבלים את x, למרות שx לא מוכל בy.
מחפש עבודה צריך שלושה דברים - לדעת לשווק את עצמו, לדעת להגיע למשרות ולדעת להשתפר מתהליך לתהליך.
לבדיקת התאמה
לפני 8 שנים
ע"י: 1_אורח_כללי
לגבי השאלה של המוכל, לא מספיק לחלק בשתים את המספר הגדול מספר פעמים ולראות אם הוא שווה למספר הקטן?
לפני 8 שנים
ע"י: 1_אורח_כללי
מה הפתרון לשאלה האם מספר בינארי x מוכל במספר בינארי אחר y?
חשבתי על לעשות x == x & y כלומר לעשות bitwise and בינהם, כאשר כל פעם אני עושה right shift לy אבל זה הניב תוצאה לא נכונה למשל בין המספרים הבינאריים x=1001 וy=1101 כי ברגע שנבדוק את התנאי אז נקבל שהתנאי מתקיים.. הנה הקוד:
int contains_binary (int x, int y) {
while (y){
if (x== x&y) {
return 1; }
y=y>>1;
}
return 0;
}
ניסיתי גם לכתוב תשובה נכונה בוודאות אבל יצא קצת מסובך אז אשמח לקבל תשובה קצרה ופשוטה אם קיימת לדעתכם +(הערות על הקוד גם יתקבלו בברכה).
int contained (int A, int B){
int tempA=A, tempB = B; int contained =0;
while (B){
if (A== (A&B)){
while (tempA){
if (tempA%2 == tempB%2) {
contained ==1;
tempA=tempA>>1;
tempB=tempB>>1;
}
else {
contained =0;
tempA=A;
tempB=B;
break;
}
}
if (contained ==1) {
return 1;
}
B=B>>1;
tempB = B;
}
return 0;
}
לפני 9 שנים
ע"י: 1_אורח_כללי
היי,
כמה עבודות לחיילים משוחררים יש בתל אביב?
נכון יש מלא? אז בואו לאילת כי שם גם יש עבודה ואין הרבה אנשים שמחפשים.
https://www.isrotel.co.il/career/main/
לפני 15 שנים
ע"י: רועי
יש טעות בהכפךת מספרים
זה הנכון
int multiply1 (int num, int times)
{
int cnt=0;
int org_times=times;
while(times >1)
{
times= times >> 1;
cnt++;
}
int val= 1;
val= val <<cnt;
int sub= org_times-val;
int res= num << cnt;
for( int i=0 ; i < sub; i++)
{
res+=num;
}
return res;
}
לפני 15 שנים
ע"י: 1_אורח_כללי
הייתי בראיון בחברת נובוטון לא מזמן לתפקיד מהנדס תוכנה ושאלו אותי בראיון העבודה את השאלה הבאה:
(בשפת C)
נתון פוינטר לאיזשהו קטע התחלה בזיכרון, פוינטר לקטע סיום בזיכרון, פוינטר void * ופוינטר ל INT. דרך שני המשתנים האחרונים יש להחזיק תשובה לסביבה הקוראת לפונקצייה.
המטרה: לעבור על המקטע מקטע ההתחלה עד קטע הסיום (שניהם פוינטרים לבייטים בזיכרון שמגיעים כארגומנטים) ביט ביט ולגלות מהו הרצף הכי ארוך של ביטים דלוקים ("1") במיקטע.
את התשובה יש למסור כך:
הפוינור שהוא VOID * אמור להצביע על הבייט שבו מתחיל הרצף.
ה פוינטר לINT אמור להצביע על INT שמחזיק את ה OFFSET באותו הבייט (כאמור, בבייט יש 8 ביט).
בנוסף לפונקצייה יש ערך מוחזר מטיפוס INT שהוא האורך של הרצף המכסימלי שנמצא.
נקודות שונות למחשבה:
א) רצף יכול להתחיל באמצע בייט אחד ולהסתיים באמצע בייט שני.
ב) ב C לא ניתן "לקפוץ" בזיכרון פחות מבייט אחד.
הסתבכתי עם השאלה הזאת כהוגן. רצוי לחשוב קודם על הפיתרון עד הסוף לפני שמתחילים לשרבט לולאות.
אני אפרסם פיתרון יותר מאוחר.
לפני 15 שנים
ע"י: 1_אורח_כללי
זהירות - יש באג בשאלה האחרונה - איך להפוך רשימה מקושרת.
אני אשלח תיקון יותר מאוחר.
לפני 15 שנים
ע"י: סיו
שאלות מסוג Bitwise בד"כ נהוגות בחברות עם מוצרי Real-Time (סלולאר, מצלמות, תקשורת...)
1. איך ניתן להפוך מספר bitwise (יעני MSB LSB וגם LSB MSB)?
2. איך ניתן לבדוק האם מספר הוא חזקה של 2?
איך ניתן לבדוק כמה 1ים יש במספר?
3. הדרך המהירה ביותר להכפיל מספר (ע"י שימוש באופרטורים: '+', '<<', '>>' וללא '*')
4. איך ל"הדליק" את כל הביטים במספר
5. איך לבדוק אם מס' בינארי "מכיל" מס' בינארי אחר (לדוגמא: 01001010 "מכיל" את 1001)
6. איך לבדוק אם הביט ה- nי במס' בינארי "דלוק
שאלות על singly linked list בד"כ נהוגות בחברות עם מוצרי תוכנה (Server) – למרות שזה לכאורה פשוט – זה לעיתים מבלבל – זו שיטה של המראיינים לקבל רושם ראשוני מהמרואיין...
7. הגדר איבר כללי (המכיל int – לשם הפשטות) ברשימה והראה איך ניתן להפוך את הרשימה?
לא ניתן להוריד את הקובץ המצורף.מישהו יכול להעלות אותו שוב בבקשה