Base conversion: binary, penta, octal, decimal and hexa
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
static char digit_hexa[] = "0123456789ABCDEF";
static char digit_decimal[] = "0123456789";
static char digit_octa[] = "01234567";
static char digit_penta[] = "01234";
static char digit_binar[] = "01";
void convHexa(unsigned n)
{
if(n < 16)
{
printf("%c",digit_hexa[n]);
}
else
{
convHexa(n / 16);
printf("%c",digit_hexa[n%16]);
}
}
int convDecim(unsigned n)
{
return printf("%d\n",n);
}
void convOcta(unsigned n)
{
if(n < 8)
{
printf("%c",digit_octa[n]);
}
else
{
convOcta(n / 8);
printf("%c",digit_octa[n%8]);
}
}
void convPenta(unsigned n)
{
if(n < 5)
{
printf("%c",digit_penta[n]);
}
else
{
convPenta(n / 5);
printf("%c",digit_penta[n%5]);
}
}
void convBinar(unsigned n)
{
if(n < 2)
{
printf("%c",digit_binar[n]);
}
else
{
convBinar(n / 2);
printf("%c",digit_binar[n%2]);
}
}
void convBinar_zecimal()
{
int a[20];
int i,n,s,k,p;
printf("n=");scanf("%d",&n);
for (i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
s=0;
for (i=0;i<n;i++)
{
p = 1;
for(k=1;k=n-i-2;k++)
p = p * 2;
s = s + a[i] * p;
}
printf("Numarul = %d\n",s);
}
/*int a[20];s
int i,n,s,k,p;
printf("n=");scanf("%d",&n);
for (i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
s = 0;
p = 1;
for (i=n;i>=0;i--)
{
s = a[i] * p;
p = p * 2;
}
printf("Numarul = %d\n",s);
}*/
void convBinar_zecimal2(unsigned n)
{
if(n < 10)
{
printf("%c",digit_binar[n]);
}
else
{
convBinar_zecimal2(n / 10);
printf("%c",digit_binar[n%10]);
}
}
void main()
{
unsigned n;
printf("n= ");scanf("%d",&n);
printf("Numarul in hexa este: \n");
convHexa(n);
printf("\n");
printf("Numarul in decimal este: ");
printf("\n");
convDecim(n);
printf("Numarul in octal este: \n");
convOcta(n);
printf("\n");
printf("Numarul in baza 5 este: \n");
convPenta(n);
printf("\n");
printf("Numarul in binar este: \n");
convBinar(n);
printf("\n");
printf("Numarul din binar in zecimal este: \n");
convBinar_zecimal2(n);
printf("\n");
}
424,781 total views, 1 views today