首页 > 代码库 > 进制转换
进制转换
Q:输入一个整数n,输出它的二、八、十六进制。
S:
#include <stdio.h>int chantyp(int type/*目标进制,如:2 */ ,int n,int ans[]);//用于转换进制,返回结果数组的长度 //超级进制转换器,适用于十进制到二、八、十六进制 的转化int main(){ int i,len; int n; int n2[101]={0}; int n8[101]={0}; int n16[101]={0}; scanf("%d",&n); /////////////////////// //以下处理二进制部分的输出 len=chantyp(2,n,n2); for(i=0;i<=len;i++) printf("%d",n2[i]); printf("\n"); //////////////////////// //以下处理八进制部分的输出 len=chantyp(8,n,n8); for(i=0;i<=len;i++) printf("%d",n8[i]); printf("\n"); ////////////////////////////////////// //以下处理十六进制的输出 len=chantyp(16,n,n16); for(i=0;i<=len;i++) { if(n16[i]>=10&&n16[i]<=16) { switch(n16[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; case 16:printf("G");break; } } else printf("%d",n16[i]); } printf("\n"); return 0;}int chantyp(int type,int n,int ans[])//超级进制转换器,适用于十进制到二、八、十六进制 的转化 { int i=0; int len; int j; int temp; while(n/type!=0) { ans[i]=n%type; n/=type; i++; } ans[i]=n; len=i; for(i=0,j=len;i<=len/2;i++,j--) { temp=ans[i]; ans[i]=ans[j]; ans[j]=temp; } return len;}
进制转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。