Program 28:
Explanation:#include<stdio.h> #include<math.h> main() { int dec=0,temp,i,inc=0,binary; printf("Enter a numer to convert to binary number\n"); scanf("%d",&binary); temp=binary; while(temp!=0) { i=temp%10; dec=dec+(i*pow(2,inc)); temp=temp/10; inc++; } printf("Decimal number of %d is %d\n",binary,dec); }
- The program starts with initializing :
- dec → To store resulting decimal number
- temp → To store binary temporarily
- i →used as helping variable
- binary → To store binary value given by user
- inc → Used to increment by 1
-
printf("Enter a numer to convert to binary number\n"); scanf("%d",&binary);
Takes input from user and stores in binary which is in turn stored in temp for future reference.Lets take binary=110,so temp=110. -
while(temp!=0) { i=temp%10; dec=dec+(i*pow(2,inc)); temp=temp/10; inc++; }
This is the main logic of this program.Lets take binary=110 and took dec=0,inc=0- Iteration 1: temp=110 and 110!=0 which is true so the while loop executes
- i=temp%10 → 110%10 → i=0
- dec=dec+(i*pow(2,inc)) → 0+(0*2^0)→ dec=0
- temp=temp/10 → 110/10 → temp=11
- inc++ → inc=1
- Final values are:i=0,dec=0,temp=11,inc=1.
- Iteration 2: temp=11 and 11!=0 which is true so the while loop executes
- i=temp%10 → 11%10 → i=1
- dec=dec+(i*pow(2,inc)) → 0+(1*2^1)→ dec=2
- temp=temp/10 → 11/10 → temp=1
- inc++ → inc=2
- Final values are:i=1,dec=2,temp=1,inc=2.
- Iteration 3: temp=1 and 1!=0 which is true so the while loop executes
- i=temp%10 → 1%10 → i=1
- dec=dec+(i*pow(2,inc)) → 2+(1*2^2)→ dec=6
- temp=temp/10 → 1/10 → temp=0
- inc++ → inc=3
- Final values are:i=1,dec=6,temp=0,inc=3.
- Iteration 4: temp=0 and 0!=0 which is flase so the while loop terminates
- Final value after execution is dec=6
- Iteration 1: temp=110 and 110!=0 which is true so the while loop executes
-
printf("Decimal number of %d is %d\n",binary,dec);
Finally we are printing the result of Decimal which is 6
Output: