i have this code to convert dinary to decimal but when i enter a binary number all it does is return the number of digits i typed i.e. if i typed 110010 it should return 50 but I get 6. Any help/advice would be greatly appreciated.

Code:

#include <stdio.h>
#include <stdlib.h>
/*function prototype*/
int bin2dec(int binar4y);
int main()
{
int binary;
int decimal;
printf("The decimal equivalent = %d\n",bin2dec(binary));
getchar();
getchar();
return 0;
}
int bin2dec(int binary)
{
int b=0;
int num[10];
int i=0;
int t=0;
printf("Enter Binary Number\n");
scanf("%d", &binary);
while(binary != 0)
{
num[i] = binary % 10;
binary = binary / 10;
if(num[i] != 1 && num[i] != 0)
t = 1;
i++;
}
num[i] = 2;
binary = 1;
for(i = 0; num[i] != 2; i++)
{
b = b + num[i] * binary;
binary = binary * 2;
}
}