黑马程序员技术交流社区

标题: 今天看到一题目将任意十进制转换成任意2--16进制的问题 [打印本页]

作者: 一步一脚印=-=    时间: 2016-1-30 23:16
标题: 今天看到一题目将任意十进制转换成任意2--16进制的问题
  1. #include <stdio.h>
  2. void trans(i,R){
  3.         int a[30];
  4.         int j=0,rem;
  5.         //取余数放到数组a中
  6.         do{
  7.                 rem=i%R;i=i/R;
  8.                 a[j]=rem;
  9.                 j++;
  10.         } while(i!=0);
  11.         //倒序输出数组a,并且将大于9的余数变形
  12.         while (j-->0){
  13.                 if(a[j]>9){
  14.                         switch(a[j]){
  15.                                 case 10:{
  16.                                         printf("A");
  17.                                         continue;
  18.                                 }
  19.                                 case 11:{
  20.                                         printf("B");
  21.                                         continue;
  22.                                 }
  23.                                 case 12:{
  24.                                         printf("C");
  25.                                         continue;
  26.                                 }
  27.                                 case 13:{
  28.                                         printf("D");
  29.                                         continue;
  30.                                 }
  31.                                 case 14:{
  32.                                         printf("E");
  33.                                         continue;
  34.                                 }
  35.                                 case 15:{
  36.                                         printf("F");
  37.                                         continue;
  38.                                 }               
  39.                         }
  40.                 }
  41.         printf("%d",a[j]);       
  42.         }
  43. }
  44. int main(int argc, char *argv[]) {
  45.         int i,R;
  46.         printf("请输入一个整数:\n");
  47.         scanf("%d",&i);
  48.         printf("请输入你想转换成的进制数2--16\n");
  49.         scanf("%d",&R);
  50.         trans(i,R);
  51.         return 0;
  52. }
复制代码
妥妥的,费了半天劲


作者: guyuexing    时间: 2016-1-30 23:31
学习了,谢谢分享
作者: Chris_Wu    时间: 2016-1-31 12:54
也可以调用系统的sprintf()函数,十六进制格式为x%
作者: 杨冬武    时间: 2016-1-31 23:25
系统只看怎么读,不看怎么存,用scanf和printf应该就可以吧
作者: 杨冬武    时间: 2016-1-31 23:26
你这个方法挺好的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2