mirror of
https://github.com/TheAlgorithms/C
synced 2024-11-22 13:31:21 +03:00
Add: Implementation of Binary to Octal Conversion
This commit is contained in:
parent
bb8c41b2de
commit
f7795e1356
52
conversions/binary2octal.c
Normal file
52
conversions/binary2octal.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// Binary number to octal number conversion
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
//Function that returns the last three digits
|
||||||
|
int three_digits(int n)
|
||||||
|
{
|
||||||
|
int r, d = 0, p=1;
|
||||||
|
|
||||||
|
for(int i=0; i<3; i++)
|
||||||
|
{
|
||||||
|
r = n%10;
|
||||||
|
d = d + r * p;
|
||||||
|
p = p * 10;
|
||||||
|
n = n / 10;
|
||||||
|
}
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
int binary_num, d=0, base=1, remainder, td, res=0, ord=1;
|
||||||
|
|
||||||
|
printf("Enter the binary no: ");
|
||||||
|
scanf("%d", &binary_num);
|
||||||
|
|
||||||
|
while(binary_num > 0)
|
||||||
|
{
|
||||||
|
if(binary_num > 111) //Checking if binary number is greater than three digits
|
||||||
|
td = three_digits(binary_num);
|
||||||
|
|
||||||
|
else td = binary_num;
|
||||||
|
|
||||||
|
binary_num = binary_num / 1000;
|
||||||
|
|
||||||
|
d = 0, base =1;
|
||||||
|
|
||||||
|
// Converting the last three digits to decimal
|
||||||
|
while(td > 0)
|
||||||
|
{
|
||||||
|
remainder = td % 10;
|
||||||
|
td = td / 10;
|
||||||
|
d = d + (base * remainder);
|
||||||
|
base = base * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
res = res + d * ord; // Calculating the octal value
|
||||||
|
ord = ord * 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("\nOctal equivalent is: %d", res);
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user