include
include
int bin(int a);
int dec(int a);
int main()
{
int x;
char c;
printf("Enter d if you wanna convert to decimal, OR b if you wanna convert to binary :\n");
scanf("%c", &c);
printf("Enter a number to convert it:\n");
scanf("%d", &x);
if(c == 'd' || c == 'D')
printf("%d", dec(x));
if(c == 'b' || c == 'B')
printf("%d", bin(x));
} int dec(int a){ int d = 0, rem, i = 1; while(a != 0){ rem = a % 10; a /= 10; d += rem * i; i *= 2; } return d; }
int bin(int a){ // التحويل إلى النظام الثنائي int b= 0, rem, i = 1; while(a != 0){ rem = a % 2; a /= 2; b += rem * i; i *= 10; } return b; } السؤال: لماذا في تابع التحويل إلى النظام الثنائي لا يمكن كتابة النالي :
int bin(int a){ int b= 0, rem, i = 1; while(a != 0){ rem = a % 2; a /= 2; b += rem * pow(10,i); i++; } return b;
}
فعندما اكتب الشكل السابق يظهرلي خطأ في التنفيذ مثل:
b // we enter b
12 // we enter the number
/* the result will be */
1099
التعليقات