שאלת אתגר...

zontar

New member
שאלת אתגר...

אני צריך עזרה בשאלה קטנה שקיבלתי ולא הצלחתי לפתור. נתון בית (8 סביות) לא ידוע איך הסביות מאותחלות , יש לתת פתרון לוגי להפיכת הסיבית הימנית ביותר שדולקת. לדוגמה: 00101100 \ \ זו הסיבית הימנית ביותר שדולקת יש ליצור: 00101000 אולם אין להשתמש בלולאות ואין להשתמש בהזחת סיביות.
 

WarLord

New member
פתרון

הפתרון מבוסס על שיטת המשלים ל2 ליצוג מספרים בעלי. למיטב זכרוני (אבל תנסה) כדי להפוך סימן של מספר הולכים מימין לשמאל עד ה 1 הראשון. אותו משארים ואת כל השאר הספרות משמאל לו הופכים. למשל 0010 יהפוך ל 1110 הפתרון הלוגי לבצע NOT על המספר עם הסימן הנגדי ועל זה AND עם המספר המקורי במספר עם הסימן הנגדי כל הסיביות אחרי ה1 הראשון הפוכות. ביצוע NOT יחזיר את כל מה שמשמאל ל 1 הראשון לערכו הימיני ולכן AND על חלק זה ישמור אותו כמו שהוא. האחד שצריך לכבות יכבה (כי יהיה 1 & 0). וכל מה שמימין לו יכבה כי במקור היו שם אפסים.
 
למעלה