首页 > 编程语言 > 详细

C语言初学习(2)

时间:2017-01-14 07:33:08      阅读:170      评论:0      收藏:0      [点我收藏+]

题目:将整数转换为10进制、2进制、16进制的数字串。

分析:整数转化为10进制,这个就不用多说了,直接printf()就好了~转化为二进制,其实也很简单,先看看算法,比如6得二进制是多少呢?,又是怎么来的呢?来看看~

先6%2得到a[0]=0;再6/2=3;

用3%2得到a[1]=1;再3/2=1;

用1%2得到a[2]=1;

然后再把数组a的值倒序输出,那么6得二进制自然就是110喽~

举一反三,可以得出十进制转化为二进制的方法~

那么十进制转化为16进制呢?还不是一样的道理吗?

一起来看看代码吧~

代码:

 1 #include<stdio.h>
 2 void ten_s(int n,int s)//十转二
 3 {
 4     int b[8]={0};
 5     int i,t=n,k=0;
 6     for(i=0;i<8;i++)
 7     {
 8         t/=s;
 9         if(t>0)
10         {
11             k++;
12         }
13         else break;
14     }
15     for(i=k;i>=0;i--)
16     {
17         b[i]=n%s;
18         n/=s;    
19     }
20     for(i=0;i<=k;i++)
21     {
22         printf("%d",b[i]);
23     }
24     printf("\n");
25 }
26 void ten_h(int n,int s)//十转十六
27 {
28     char b[8]={0};
29     int i,t=n,k=0;
30     for(i=0;i<8;i++)
31     {
32         t/=s;
33         if(t>0)
34         {
35             k++;
36         }
37         else break;
38     }
39     
40     for(i=k;i>=0;i--)
41     {
42         t=n;
43         t%=s;
44         switch(t)
45         {
46 
47             case 10: b[i]=A;break;
48             case 11: b[i]=B;break;
49             case 12: b[i]=C;break;
50             case 13: b[i]=D;break;
51             case 14: b[i]=E;break;
52             case 15: b[i]=F;break;
53         }
54         if(t<10&&t>=0)
55         {
56             b[i]=t;
57         }
58         n/=s;    
59     }
60     for(i=0;i<=k;i++)
61     {
62         if(b[i]>=65&&b[i]<=70)
63         printf("%c",b[i]);
64         else printf("%d",b[i]);
65     }
66     printf("\n");
67 }
68 void main()
69 {
70     int a,s;
71     while(1)
72     {
73     printf("输入一个整数0-255以及需要转换的进制数:\n");
74     scanf("%d%d",&a,&s);
75     if(s==2||s==8)
76     {
77         ten_s(a,s);
78     }
79     if(s==16)
80         ten_h(a,s);
81     }
82 
83 }

答案例:

技术分享

是不是十分容易呢?

欢迎联系我的qq:251685331

一起学习~

C语言初学习(2)

原文:http://www.cnblogs.com/wobrm-zxm/p/6284531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!