אני מנסה לפתוח תוכנית שקולטת 2 מספרים שלמים.
הופכת אותם לבינאריים ואז מחברת ביניהם בשיטה הבינארית
והפלט היא התוצאה הבינארית של חיבור שני המספרים..
בבקשה תכתבו לי את התוכנה..
אני מנסה הרבה זמן ועדיין לא הצלחתי..
אני מנסה לפתוח תוכנית שקולטת 2 מספרים שלמים.
הופכת אותם לבינאריים ואז מחברת ביניהם בשיטה הבינארית
והפלט היא התוצאה הבינארית של חיבור שני המספרים..
בבקשה תכתבו לי את התוכנה..
אני מנסה הרבה זמן ועדיין לא הצלחתי..
המנפה היה פה!
|
|
לכתוב לך את התוכנה ?
שמת לב מה ביקשת ?
חחחח ...
אנחנו לא עובדים אצלך .
אתה צריך לבקש עזרה במה שנתקעת לא שנעשה לך הכל .
המעבד עובד רק עם מספרים בינארים(שמייצגים זרם).. ככה שכל חיבור שתעשה בין המספרים בסופו של דבר יבוצע על המספרים בצורה הבינארית שלהם..
בכדי לראות את התצורה הבינארית של המספר כתבתי לך פונקציה שתחזיר לך את הערך.
קוד:char * ConvertIntToBin( int number ) { char* retValue = ( char* )malloc( 33 ); // allocate 32 bytes + 1 for null memset( retValue, '0', 32 ); // set all 32 bytes to '0' for( int i = 0; number > 0 && i < 33; i++ ) { *( retValue + ( 32 - i ) ) = ( number % 2 == 1 ? '1' : '0' ); number /= 2; } *( retValue + 32 ) = '\0'; // null terminate return retValue; }
באמצעות הפונקציה תוכל לראות מה הייצוג הבינארי (32 ביט) של המספר.
שים לב שהפונקציה מחזירה מחרוזת ולא מספר וזאת מכיוון שמספרים ב-C מיוצגים דיפולטית ע"י הערך הדצימלי שלהם ובגלל זה משתמשים במחרוזות כדי להראות את המספרים בתצורה הבינארית..
תוכל להשתמש בפונקציה הזאת כדי לבצע "הדמיה" של תהליך החיבור הבינארי.. כמובן שזה לא באמת יהיה חיבור מכיוון שאתה מתעסק במחרוזות אבל זה מספיק כדי להציג למשתמש את התהליך..
מקווה שזה עוזר לך....
נערך לאחרונה על ידי Yakir; 21-11-2009 בשעה 02:14.
לא משנה הסתדרתי
תודה ליקיר
המנפה היה פה!