c++ 进制转换源代码
#include<stdio.h> int main() { char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int zh[32],i=0,w,j; long int b,y; printf("请输入一个十进制数,我能帮您把它转换成2~16任意进制数:\n"); scanf("%d",&y); b=y; printf("请输入要转换为的进制:"); scanf("%d",&w); printf("\n"); do { zh[i]=y%w; i++; y=y/w; } while(y!=0); printf("把十进制的%ld转换为%d进制:",b,w); for(i--;i>=0;i--) { j=zh[i]; printf("%c",ku[j]); } printf("\n"); return 0; }
十进制转化二进制函数
void print_bin(int n)
{ int l = sizeof(n)*8;//总位数。得到n的字节数,再*8得到对应的二进制位数 int i; if(i == 0) { printf("0"); return; } for(i = l-1; i >= 0; i --)//略去高位0. { if(n&(1<<i)) break; } for(;i>=0; i --) printf("%d", (n&(1<<i)) != 0); }
函数调用:
print_bin(23);
#include<stdio.h> /*输入输出头文件*/ main()/*空类型:主函数*/ { int b[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/ printf("输入一个十进制:");/*输出文字提示*/ scanf("%d",&x); /*输入一个十进制数字*/ k=-1;/*将-1赋给k*/ do/*用循环将十进制的数转化成二进制的数*/ { r=x%2;/*用除R取余倒计法计算二进制*/ b[++k]=r;/*将值赋给数组*/ x/=2;/*将原数除2*/ }while(x>=1); for(i=k;i>=0;i--) /*将上面倒计的数正回来*/ printf("%d",b[i]);/*输出结果*/ printf("\n"); }