进制转换

xiaoxiao2021-02-28  171

#include<stdio.h> int main() { int num,i,j,sys; char a[100]; printf("please input a system 2 to 9 or 16 that you want:");//输入你想转化的进制。 scanf("%d",&sys); printf("please a number:"); //输入你想转化的数。 scanf("%d",&num); if(2 < sys && sys < 9 || sys == 16) //判断你输入的进制是否符合要求 { for(i = 0;;i++) { a[i] = num % sys; //对你想转化的数取余 if(a[i] == 10) //将大于10的数用英文字母来表示。 { a[i] = 'A'; } if(a[i] == 11) { a[i] = 'B'; } if(a[i] == 12) { a[i] = 'C'; } if(a[i] == 13) { a[i] = 'D'; } if(a[i] == 14) { a[i] = 'E'; } if(a[i] == 15) { a[i] = 'F'; } num = num / sys; //取余以后再对它求商。 if(num == 0) //商等于0退出循环。 break; } } else { printf("The input you enter is wrong!\n "); exit(0); } printf("character string puout result:"); for(i;0 <= i ;i-- ) //输出结果 { if(a[i] >='A' && a[i] <= 'F') { printf("%c",a[i]); } else printf("%d",a[i]); } printf("\n"); return 0; } 总结:进制的转化关键在于你要知道十进制和各个进制之间是怎样转化的。你输入的十进制数对你想转化的进制数取余数,然后再用商再取余数,直到商为0。 然后再把余数用逆序的方法把它结合起来,就是你要求的结果了
转载请注明原文地址: https://www.6miu.com/read-60944.html

最新回复(0)