#include <stdio.h>
#include<math.h>
int binaryToOctal(long binarynum)
{
int octalnum = 0, decimalnum = 0, i = 0;
/* This while loop converts binary number "binarynum" to the
* decimal number "decimalnum"
*/
while(binarynum != 0)
{
decimalnum = decimalnum + (binarynum%10) * pow(2,i);
i++;
binarynum = binarynum / 10;
}
//i is re-initialized
i = 1;
/* This loop converts the decimal number "decimalnum" to the octal
* number "octalnum"
*/
while (decimalnum != 0)
{
octalnum = octalnum + (decimalnum % 8) * i;
decimalnum = decimalnum / 8;
i = i * 10;
}
//Returning the octal number that we got from binary number
return octalnum;
}
int main()
{
long binarynum;
printf("Enter a binary number: ");
scanf("%ld", &binarynum);
// calling the function here
printf("Equivalent octal value: %d", binaryToOctal(binarynum));
return 0;
}
Enter a binary number: 0101 Equivalent octal value: 5 -----------------------------