Convert decimal to Binary Using Stack [Decimal to Binary Conversion ]
Decimal number can be converted into equivalent binary number using stack , The procedure to convert the given number into binary is described in the following video .
Program :
#include<stdio.h> #include<conio.h> #include<process.h> #define MAX 10 typedef struct stack { int data[MAX]; int top; }stack; //--------------------- int empty(stack *s) { if(s->top==-1) return(1); return(0); } //---------------------- int full(stack *s) { if(s->top==MAX-1) return(1); return(0); } //----------------------- void push(stack *s,int x) { s->top=s->top+1; s->data[s->top]=x; } //----------------------- int pop(stack *s) { int x; x=s->data[s->top]; s->top=s->top-1; return(x); } //------------------------ void main() { stack s; int num; s.top=-1; printf("\nEnter decimal number:"); scanf("%d",&num); while((num!=0)) { if(!full(&s)) { push(&s,num%2); num=num/2; } else { printf("\nStack overflow"); exit(0); } } printf("\n"); while(!empty(&s)) { num=pop(&s); printf("%d",num); } }
Explanation :
Step 1:
s.top=-1;
- Initially Top = -1 .
- It is used to create empty Stack.
printf("\nEnter decimal number:"); scanf("%d",&num);
- Accept Decimal Number using Scanf
As per video , Now we are dividing the original number by 2 and remainder is pushed onto stack , In the Second Iteration again we are dividing num by 2 and remainder is pushed onto stack . This action is carried out till number becomes 0.Step 4 :
if(!full(&s)) { push(&s,num%2); num=num/2; }
- Push Remainder Onto Stack if Stack is not Full and number != 0

well!
the video provided here helps to understand the concept quickly! if possible provide videos in most of the programs