黑马程序员技术交流社区

标题: 和大家分享一个题目,十进制转化成任意进制。 [打印本页]

作者: 大宝820    时间: 2015-9-12 23:36
标题: 和大家分享一个题目,十进制转化成任意进制。
代码如下,大家指点一下
  1. #include <stdio.h>

  2. int main(int argc, const char * argv[]){
  3.     int i,num,R,flag;
  4.     char bitnum[100];
  5.     printf("请输入一个十进制整数:\n");
  6.     scanf("%d",&num);
  7.     printf("请输入要转换的进制数(2-16之间):\n");
  8.     scanf("%d",&R);
  9.     //判断进制范围
  10.     if(R<2||R>16){
  11.         printf("输入数据错误");
  12.     }else {
  13.         //计算需要转换的进制数,先判断num的正负。
  14.         if (num>0) {
  15.             for (i=0;num!=0;i++){
  16.                 if (num % R >= 10) {
  17.                     bitnum[i]= 'A' + (num % R - 10);
  18.                 } else {
  19.                     bitnum[i]=num % R + '0';
  20.                 }
  21.                 num = num / R;
  22.             }
  23.         
  24.    
  25.         }else if (num<0){
  26.             flag=1;
  27.             num=-num;
  28.             for ( i=0; num!=0; i++) {
  29.                 if (num % R >= 10) {
  30.                     bitnum[i]= 'A' + (num % R - 10);
  31.                 } else {
  32.                     bitnum[i]=num % R + '0';
  33.                 }
  34.                 num = num / R;
  35.                
  36.             }
  37.         }
  38.     }
  39.         //逆向输出
  40.         printf("转化进制后为:");
  41.         if (flag==1) {
  42.             printf("-") ;
  43.         }
  44.         while(i--){
  45.             
  46.             printf("%c",bitnum[i]);
  47.         }
  48.             return 0;
  49.             
  50.         
  51.     }
复制代码

作者: 羊口羊口羊    时间: 2015-9-13 02:15
赞。。。。。。。

作者: zq110105    时间: 2015-9-13 10:56
很楼主写的很简练,很实用
作者: 侯越强    时间: 2015-9-13 11:39
yue努力越幸运,签到




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