首页 > 代码库 > 进制转换
进制转换
Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2 23 12 -4 3
Sample Output
111 1B -11
#include <stdio.h>#include <stdlib.h>#define N 33void num (int n, int r, char a[]);int main(){ char a[N]; int n,r; while (scanf ("%d%d", &n, &r)!=EOF) { num(n, r, a); } return 0;}void num (int n, int r, char a[]){ int i = 0; if (n<0) { n = -n; printf("-"); } while (n>0) { a[i]=n%r; if (a[i]>=10) a[i]=‘A‘+a[i]-10; n = n/r; i++; } a[i] = ‘\0‘; for ( i = i-1; i>=0; i--) { if(a[i]>=‘A‘ && a[i]<=‘Z‘) printf("%c", a[i]); else printf ("%d", a[i]); } printf ("\n");}
进制转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。