📄 jzzh.c
字号:
#include <stdio.h>
#include <stack.h>
void a();
void b();
void c();
void d();
void e();
int ascii2bin(char *ascibuf,int size);
void main()
{ int s;
do
{
printf("***************************************************************");
printf("===============================================================");
printf("0.退出\n1.十进制~二进制\n2.十进制~八进制\n3.十进制~十六进制\n");
printf("4.er jing zhi zhuan shi jing zhi\n5.ba jing zhi zhuan shi jing zhi\n6.shi liu jing zhi zhuan shi jin zhi\n");
printf("===============================================================");
printf("***************************************************************");
printf("\n\nqing xuan zhe:\n");
scanf("%d",&s);
if(s==0)
{ break;
}
switch(s)
{
case 1: a();break;
case 2: b();break;
case 3: c();break;
case 4: d();break;
case 5: e();break;
case 6: f();break;
default:printf("输入有误!请输入0~4之间的数\n");break;
}
}while(1);
}
void a()
{
int num,x,y,i,n;
sstack *q;
q=null;
initstack(q);
printf("请输入一个十进制整数:");
scanf("%d",&num);
while(num!=0)
{
x=num%2;
pushstack(q, x);
num/=2;
}
n=stacklength(q);
for(i=0;i<n;i++)
{ y=gettop(q);
popstack(q);
printf("%d",y);
}
printf("\n");
}
void b()
{
int num,x,y,i,n;
sstack *q;
q=null;
initstack(q);
printf("请输入一个十进制整数:");
scanf("%d",&num);
while(num!=0)
{
x=num%8;
pushstack(q, x);
num/=8;
}
n=stacklength(q);
for(i=0;i<n;i++)
{
y=gettop(q);
popstack(q);
printf("%d",y);
}
printf("\n");
}
void c()
{ sstack *q;
int num,x,y,i,n;
q=null;
initstack(q);
printf("请输入一个十进制整数:");
scanf("%d",&num);
while(num!=0)
{
x=num%16;
pushstack(q, x);
num/=16;
}
n=stacklength(q);
for(i=0;i<n;i++)
{
y=gettop(q);
if(y<10)
{
printf("%d",y);
popstack(q);
}
else
{
switch(y)
{
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;
}
popstack(q);
}
}
printf("\n");
}
void d()
{
int num,x,a,b,i,n;
sstack *q;
q=null;
initstack(q);
printf("shu ru yao zhuan huan de shu:\n");
scanf("%d",&num);
while(num!=0)
{
x=num%10;
pushstack(q, x);
num/=10;
}
n=stacklength(q);
a=gettop(q);
for(i=0;i<n-1;i++)
{
popstack(q);
b=gettop(q);
a=a*2+b;
}
printf("%d\n",a);
}
void e()
{
int num,x,a,b,i,n;
sstack *q;
q=null;
initstack(q);
printf("shu ru yao zhuan huan de shu:\n");
scanf("%d",&num);
while(num!=0)
{
x=num%10;
pushstack(q, x);
num/=10;
}
n=stacklength(q);
a=gettop(q);
for(i=0;i<n-1;i++)
{
popstack(q);
b=gettop(q);
a=a*8+b;
}
printf("%d\n",a);
}
void f()
{
int num,x,a,b,i,n;
int n=0,y;
char m[50];
char *p;
p=m;
sstack *q;
q=null;
initstack(q);
printf("shu ru yao zhuan huan de 16 jin zhi shu:\n");
gets(m);
n=strlen(m);
y=ascii2bin(p,n);
printf("%d\n",y);
}
int ascii2bin(char *ascibuf,int size)
{
char ch,i;
unsigned int sum=0;
unsigned int midv=0;
for(i=0;i<size;i++)
{
ch = *ascibuf++;
switch(ch)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
midv = ch - '0';
break;
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
midv = ch -'A'+10;
break;
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
midv = ch -'a'+10;
break;
}
sum = sum*16 + midv;
}
return (sum);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -