#include<stdio.h>
#include<conio.h>
#include<string.h>
void bd();
void db();
void doc();
void dh();
void od();
void ob();
void bo();
void bh();
void hb();
void hd();
void oh();
void ho();
void main()
{
int n;
char c;
begin:
clrscr();
printf("\t\t\t****MAIN MENU****\n");
printf("Enter your choise.(1-12)\n");
printf("1. Binary to Decimal.\n");
printf("2. Decimal to Binary.\n");
printf("3. Decimal to Octal.\n");
printf("4. Decimal to Hexadecimal.\n");
printf("5. Octal to Decimal.\n");
printf("6. Octal to Binary.\n");
printf("7. Binary to Octal.\n");
printf("8. Binary to Hexadecimal.\n");
printf("9. Hexadecimal to Binary.\n");
printf("10. Hexadecimal to Decimal.\n");
printf("11. Octal to Hexadecimal.\n");
printf("12. Hexadecimal to Octal.\n");
scanf("%d",&n);
if(n<1 || n>12)
printf("Invalid Choise\n");
if(n==1)
bd();
else if(n==2)
db();
else if(n==3)
doc();
else if(n==4)
{
long a;
clrscr();
printf("Conversion from Decimal to Hexadecimal\n");
printf("Enter the decimal number.\n");
scanf("%ld",&a);
dh(a);
}
else if(n==5)
od();
else if(n==6)
ob();
else if(n==7)
bo();
else if(n==8)
bh();
else if(n==9)
hb();
else if(n==10)
hd();
else if(n==11)
{
unsigned long n,i=0,a,p=1,t=0;
clrscr();
printf("Conversion from Octal to Hexadecimal.\n");
printf("Enter a Octal number\n");
scanf("%ld",&n);
i=0;
while(n!=0)
{
a=n%10;
if(a>7)
t=1;
n=n/10;
i=i+a*p;
p=p*8;
}
if(t==0)
{
printf("Hexadecimal eq=");
oh(i);
}
else if(t==1)
printf("Numbert entered is not octal.\n");
}
else if(n==12)
ho();
printf("\nDo you Wish to continue(Y/N)\n");
scanf("%s",&c);
c=toupper©;
if(c=='Y')
goto begin;
getch();
}
void bd()
{
int n,b=0,a[6],i=0,t=0;
clrscr();
printf("Conversion from Binary to Decimal\n");
printf("Enter Binary Number\n");
scanf("%d",&n);
while(n!=0)
{
a[i]=n%10;
n=n/10;
if(a[i]!=1 && a[i]!=0)
t=1;
i++;
}
a[i]=2;
n=1;
for(i=0;a[i]!=2;i++)
{
b=b+a[i]*n;
n=n*2;
}
if(t==0)
printf("Decimal Equivalent=%d",B);
else if(t==1)
printf("Entered number is not binary.");
}
void db()
{
int dec,bin,n,i=0,a[10];
clrscr();
printf("Conversion from Decimal to Binary\n");
printf("Input decimal no.");
scanf("%d",&dec);
do
{
a[i]=dec%2;
dec=dec/2;
i++;
}while(dec!=0);
for(n=i-1;n>=0;n--)
printf("%d",a[n]);
}
void doc()
{
int n,i,a[10];
clrscr();
printf("Conversion from Decimal to Octal\n");
printf("Enter a Decimal number\n");
scanf("%d",&n);
i=0;
printf("Octal equavalent of %d is ",n);
while(n!=0)
{
a[i]=n%8;
n=n/8;
i++;
}
i--;
for(;i>=0;i--)
printf("%d",a[i]);
}
void dh(long n)
{
long i;
if(n>0)
{
i=n%16;
n=n/16;
dh(n);
if(i>=10)
{
switch(i)
{
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}
}
else
printf("%ld",i);
}
}
void od()
{
unsigned long n,i=0,a,p=1,t=0;
clrscr();
printf("Conversion from Octal to Decimal\n");
printf("Enter a Octal number\n");
scanf("%ld",&n);
i=0;
printf("Decimal equavalent of %ld",n);
while(n!=0)
{
a=n%10;
if(a>7)
t=1;
n=n/10;
i=i+a*p;
p=p*8;
}
if(t==0)
printf("= %ld",i);
else if(t==1)
printf(" can't be calculated because it is not an Octal Number.\n");
}
void ob()
{
int n,a[6],i=0,t=0;
clrscr();
printf("Convertion from Octal to Binary.\n");
printf("Enter an Octal Number.\n");
scanf("%d",&n);
while(n!=0)
{
a[i]=n%10;
n=n/10;
if(a[i]>7)
t=1;
i++;
}
i--;
if(t==0)
for(;i>=0;i--)
{
switch(a[i])
{
case 0:
printf("000");
break;
case 1:
printf("001");
break;
case 2:
printf("010");
break;
case 3:
printf("011");
break;
case 4:
printf("100");
break;
case 5:
printf("101");
break;
case 6:
printf("110");
break;
case 7:
printf("111");
break;
}
}
if(t==1)
printf("Not a Octal number\n");
}
void bo()
{
int i=0,a[5],t=0;
long int n;
clrscr();
printf("Convertion From Binary to Octal\n");
printf("Enter a Binary number\n");
scanf("%ld",&n);
while(n!=0)
{
a[i]=n%1000;
n=n/1000;
if(a[i]>111)
t=1;
i++;
}
i--;
if(t==0)
for(;i>=0;i--)
{
switch(a[i])
{
case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 10:
printf("2");
break;
case 11:
printf("3");
break;
case 100:
printf("4");
break;
case 101:
printf("5");
break;
case 110:
printf("6");
break;
case 111:
printf("7");
break;
default:
printf("\nEntered number is not binary.\nPrinted value is not correct.\n");
break;
}
}
if(t==1)
printf("Number is not Binary\n");
}
void bh()
{
int i=0,a[5],t=0;
long int n;
clrscr();
printf("Convertion from Binary to Hexadecimal\n");
printf("Enter a Binary number\n");
scanf("%ld",&n);
while(n!=0)
{
a[i]=n%10000;
n=n/10000;
if(a[i]>1111)
t=1;
i++;
}
i--;
if(t==0)
for(;i>=0;i--)
{
switch(a[i])
{
case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 10:
printf("2");
break;
case 11:
printf("3");
break;
case 100:
printf("4");
break;
case 101:
printf("5");
break;
case 110:
printf("6");
break;
case 111:
printf("7");
break;
case 1000:
printf("8");
break;
case 1001:
printf("9");
break;
case 1010:
printf("A");
break;
case 1011:
printf("B");
break;
case 1100:
printf("C");
break;
case 1101:
printf("D");
break;
case 1110:
printf("E");
break;
case 1111:
printf("F");
break;
default:
printf("\nEntered number is not binary.\nPrinted value is not correct.\n");
break;
}
}
if(t==1)
printf("Number is not Binary\n");
}
void hb()
{
int i;
char s[20];
clrscr();
printf("Convertion from Hexadecimal to Binary\n");
printf("Enter a Hexadecimal number\n");
scanf("%s",s);
//gets(s);
printf("Binary Equivalent=");
for(i=0;s[i]!=NULL;i++)
{
switch(s[i])
{
case '0':
printf("0000");
break;
case '1':
printf("0001");
break;
case '2':
printf("0010");
break;
case '3':
printf("0011");
break;
case '4':
printf("0100");
break;
case '5':
printf("0101");
break;
case '6':
printf("0110");
break;
case '7':
printf("0111");
break;
case '8':
printf("1000");
break;
case '9':
printf("1001");
break;
case 'a':
case 'A':
printf("1010");
break;
case 'b':
case 'B':
printf("1011");
break;
case 'c':
case 'C':
printf("1100");
break;
case 'd':
case 'D':
printf("1101");
break;
case 'e':
case 'E':
printf("1110");
break;
case 'f':
case 'F':
printf("1111");
break;
default:
printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
break;
}
}
}
void hd()
{
int i,a[20];
unsigned long int h=0,m=1;
char s[20];
clrscr();
printf("Convertion from Hexadecimal to Decimal\n");
printf("Enter a Hexadecimal number\n");
scanf("%s",s);
printf("Decimal Equivalent=");
for(i=0;s[i]!=NULL;i++)
{
switch(s[i])
{
case '0':
a[i]=0;
break;
case '1':
a[i]=1;
break;
case '2':
a[i]=2;
break;
case '3':
a[i]=3;
break;
case '4':
a[i]=4;
break;
case '5':
a[i]=5;
break;
case '6':
a[i]=6;
break;
case '7':
a[i]=7;
break;
case '8':
a[i]=8;
break;
case '9':
a[i]=9;
break;
case 'a':
case 'A':
a[i]=10;
break;
case 'b':
case 'B':
a[i]=11;
break;
case 'c':
case 'C':
a[i]=12;
break;
case 'd':
case 'D':
a[i]=13;
break;
case 'e':
case 'E':
a[i]=14;
break;
case 'f':
case 'F':
a[i]=15;
break;
default:
printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
break;
}
}
i--;
for(;i>=0;i--)
{
h=h+a[i]*m;
m=m*16;
}
printf("%ld ",h);
}
void oh(long n)
{
long i;
if(n>0)
{
i=n%16;
n=n/16;
oh(n);
if(i>=10)
{
switch(i)
{
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}
}
else
printf("%ld",i);
}
}
void ho()
{
int i,a[20];
unsigned long int h=0,m=1;
char s[20];
clrscr();
printf("Convertion from Hexadecimal to Octal\n");
printf("Enter a Hexadecimal number\n");
scanf("%s",s);
// Converting hex to dec first
for(i=0;s[i]!=NULL;i++)
{
switch(s[i])
{
case '0':
a[i]=0;
break;
case '1':
a[i]=1;
break;
case '2':
a[i]=2;
break;
case '3':
a[i]=3;
break;
case '4':
a[i]=4;
break;
case '5':
a[i]=5;
break;
case '6':
a[i]=6;
break;
case '7':
a[i]=7;
break;
case '8':
a[i]=8;
break;
case '9':
a[i]=9;
break;
case 'a':
case 'A':
a[i]=10;
break;
case 'b':
case 'B':
a[i]=11;
break;
case 'c':
case 'C':
a[i]=12;
break;
case 'd':
case 'D':
a[i]=13;
break;
case 'e':
case 'E':
a[i]=14;
break;
case 'f':
case 'F':
a[i]=15;
break;
default:
printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
break;
}
}
i--;
for(;i>=0;i--)
{
h=h+a[i]*m;
m=m*16;
}
// Now convering from decimal to octal (h)
i=0;
printf("Octal equavalent=");
while(h!=0)
{
a[i]=h%8;
h=h/8;
i++;
}
i--;
for(;i>=0;i--)
printf("%d",a[i]);
}
7 Replies - 21604 Views - Last Post: 29 August 2007 - 10:47 PM
#1
Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 21 September 2006 - 02:59 AM
Replies To: Covertion of decimal to binary, octal, and hexadecimal numbers
#2
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 21 September 2006 - 03:44 AM
Why are you posting such a CRAP?
See the compilation result.
See the compilation result.
Quote
D:\MinGW\bin>gcc -Wall -pedantic test.c
test.c:19: warning: return type of 'main' is not `int'
test.c: In function `main':
test.c:23: warning: implicit declaration of function `clrscr'
test.c:74: warning: long int format, long unsigned int arg (arg 2)
test.c:97: error: stray '\169' in program
test.c:97: error: `toupper' undeclared (first use in this function
test.c:97: error: (Each undeclared identifier is reported only onc
test.c:97: error: for each function it appears in.)
test.c: In function `bd':
test.c:126: error: `cool' undeclared (first use in this function)
test.c:126: error: syntax error before ';' token
test.c: In function `db':
test.c:134: warning: unused variable `bin'
test.c: In function `od':
test.c:212: warning: long int format, long unsigned int arg (arg 2
test.c:423:1: warning: C++ style comments are not allowed in ISO C
test.c:423:1: warning: (this will be reported only once per input
test.c: In function `hb':
test.c:425: warning: comparison between pointer and integer
test.c: In function `hd':
test.c:500: warning: comparison between pointer and integer
test.c: In function `ho':
test.c:619: warning: comparison between pointer and integer
test.c:700:2: warning: no newline at end of file
test.c:19: warning: return type of 'main' is not `int'
test.c: In function `main':
test.c:23: warning: implicit declaration of function `clrscr'
test.c:74: warning: long int format, long unsigned int arg (arg 2)
test.c:97: error: stray '\169' in program
test.c:97: error: `toupper' undeclared (first use in this function
test.c:97: error: (Each undeclared identifier is reported only onc
test.c:97: error: for each function it appears in.)
test.c: In function `bd':
test.c:126: error: `cool' undeclared (first use in this function)
test.c:126: error: syntax error before ';' token
test.c: In function `db':
test.c:134: warning: unused variable `bin'
test.c: In function `od':
test.c:212: warning: long int format, long unsigned int arg (arg 2
test.c:423:1: warning: C++ style comments are not allowed in ISO C
test.c:423:1: warning: (this will be reported only once per input
test.c: In function `hb':
test.c:425: warning: comparison between pointer and integer
test.c: In function `hd':
test.c:500: warning: comparison between pointer and integer
test.c: In function `ho':
test.c:619: warning: comparison between pointer and integer
test.c:700:2: warning: no newline at end of file
This post has been edited by Xing: 21 September 2006 - 03:45 AM
#3
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 21 September 2006 - 03:49 AM
Try to make a program that will input decimal value and will convert it in binary, octal and hexadecimal.
------------------------------------------------
**Example of the output of the program**
Enter the decimal value: 10
Binary value is: 1010
Octal value is: 12
Hexadecimal value is: A
------------------------------------------------
**Example of the output of the program**
Enter the decimal value: 10
Binary value is: 1010
Octal value is: 12
Hexadecimal value is: A
#4
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 21 September 2006 - 05:27 AM
Hi
If you can post your code, I could help you out. Its very simple.
Thanks
If you can post your code, I could help you out. Its very simple.
Thanks
#5
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 21 September 2006 - 07:03 AM
If you're intention is to contribute your code, post it in the Code Snippets Section. (With corrected errors obviously).
If you want to ask for help, then please ask.
What do you want to do with the code?
Add Code Tags around source code to reduce the display size of the output post.
<Code Tags Added>
If you want to ask for help, then please ask.
What do you want to do with the code?
Add Code Tags around source code to reduce the display size of the output post.
<Code Tags Added>
#6
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 21 September 2006 - 07:58 AM
Same topic posted in 2 different forums by same member.
Topics have been merged into one. PM me if these are actually not related and I will put them back.
Topics have been merged into one. PM me if these are actually not related and I will put them back.
#7
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 29 August 2007 - 09:52 PM
does anyone here can give me code of converting binary to decimal only
#8
Re: Covertion of decimal to binary, octal, and hexadecimal numbers
Posted 29 August 2007 - 10:47 PM
Page 1 of 1
|
|

New Topic/Question
This topic is locked


MultiQuote








|