C语言十进制转0—16以内的任意进制

来源:互联网 发布:淘宝秒杀器 编辑:程序博客网 时间:2024/06/15 21:18

进制转换使大家经常会用到的问题,所以在这里记下来。

#include <stdio.h>#include <math.h>#include <stdlib.h>#include <conio.h>main(){ int i,j,k,z,m;  double  x,y;  static char a1[21],a2[11],  bb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};  system("cls");  printf("请输入被转化数:");  scanf("%lf",&x);  printf("请输入所转换的进制数:");  scanf("%d",&z);  k=(int) x; y=x-k;  for (i=1;k!=0;i++)    { a1[i]=bb[k % z];      k/=z; }  a2[0]='.';  for (j=1;j<=10;j++)    { m=(int) (y*z);      a2[j]=bb[m];      y=y*z-m;}  printf("结果:");  for (i--;i>=1;i--) printf("%c",a1[i]);  for (j=0;j<=10;j++) printf("%c",a2[j]);}




0 0
原创粉丝点击