⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jzzh.c

📁 各进制间的转换 十进制数转为其他进制数 其他进制数转换为十进制数
💻 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 + -