如何使用C语言编写二进制转换为十进制的程序

发布于 2021-01-18 15:16:22      浏览 396

如何使用C语言编写二进制转换为十进制的程序

详情:

1、
欢迎访问抉信网 www.juexinw.com
1.为了完成进制的转换,我在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。另外定义了一个数组array[8],用于存放输入的八位二进制数。
2、
欢迎访问抉信网 www.juexinw.com
2.然后使用了一个for循环语句,用于输入八位二进制数。在scanf函数里,我在%d之间加了一个1,即%1d,这样是好连续的输入八个数,如果没有中间的1,则编译器会认为你只输入了一个数,即那个八位数。然后使用printf函数输出,并且调用Sum函数,数组名作为实参。
3、
欢迎访问抉信网 www.juexinw.com
3.在Sum函数中,我又声明了一个power函数,power函数的作用是求2的n次方,其实这里可以调用库函数pow,但是老师要求不调用库函数,因此我就自己写了一个求2的n次方的函数,在这里n为指数,term为每一位数转换为十进制后的的数,如1*(2*2),sum为总和。
4、
欢迎访问抉信网 www.juexinw.com
4.接着,我使用了一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环,因为二进制的最后一位转换为十进制数时指数就是零,此后循环就结束。调用power函数时,将n作为实参,最后将和返回,即将sum作为返回值返回给Sum函数。
5、
欢迎访问抉信网 www.juexinw.com
5.在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数,有疑问的可以用笔算算乘2的个数对不对,最后将i返回
6、
欢迎访问抉信网 www.juexinw.com
6.最后看一下运行的结果,
7、
欢迎访问抉信网 www.juexinw.com
7.这里是源代码。
8、
欢迎访问抉信网 www.juexinw.com
#include<sto.h>
9、
欢迎访问抉信网 www.juexinw.com
int main()
10、
欢迎访问抉信网 www.juexinw.com
{
11、
欢迎访问抉信网 www.juexinw.com
int Sum(int a[]);
12、
欢迎访问抉信网 www.juexinw.com
int array[8],i;
13、
欢迎访问抉信网 www.juexinw.com
printf("输入一个8位二进制数:");
14、
欢迎访问抉信网 www.juexinw.com
for(i=0;i<8;i++)
15、
欢迎访问抉信网 www.juexinw.com
{
16、
欢迎访问抉信网 www.juexinw.com
scanf("%1d",&array[i]);
17、
欢迎访问抉信网 www.juexinw.com
}
18、
欢迎访问抉信网 www.juexinw.com
printf("转换为十进制数后是:%d",Sum(array));
19、
欢迎访问抉信网 www.juexinw.com
return 0;
20、
欢迎访问抉信网 www.juexinw.com
}
21、
欢迎访问抉信网 www.juexinw.com
int Sum(int a[])
22、
欢迎访问抉信网 www.juexinw.com
{
23、
欢迎访问抉信网 www.juexinw.com
int power(int b); //声明求2的n次方的函数
24、
欢迎访问抉信网 www.juexinw.com
int n,i,sum=0,term;//n为指数,term为每一项的值,如1*(2*2),sum为总和
25、
欢迎访问抉信网 www.juexinw.com
for(i=0,n=7;i<8;i++,n--)
26、
欢迎访问抉信网 www.juexinw.com
if(n>=0)
27、
欢迎访问抉信网 www.juexinw.com
{term=a[i]*power(n);
28、
欢迎访问抉信网 www.juexinw.com
sum=sum+term;
29、
欢迎访问抉信网 www.juexinw.com
}
30、
欢迎访问抉信网 www.juexinw.com
return sum;
31、
欢迎访问抉信网 www.juexinw.com
}
32、
欢迎访问抉信网 www.juexinw.com
int power(int b)
33、
欢迎访问抉信网 www.juexinw.com
{
34、
欢迎访问抉信网 www.juexinw.com
int i=2,j=1;
35、
欢迎访问抉信网 www.juexinw.com
if(b==0)
36、
欢迎访问抉信网 www.juexinw.com
i=1;
37、
欢迎访问抉信网 www.juexinw.com
for(;j<b;j++)
38、
欢迎访问抉信网 www.juexinw.com
i=2*i;
39、
欢迎访问抉信网 www.juexinw.com
return i;
40、
欢迎访问抉信网 www.juexinw.com
}
41、
欢迎访问抉信网 www.juexinw.com
8.在这里我修改了一下代码,换成了使用库函数pow,不想自己写求2的n次方的函数的可以用这里的代码。“//”后面的内容是注释掉了的,对程序不起作用。
42、
欢迎访问抉信网 www.juexinw.com
#include<stdio.h>
43、
欢迎访问抉信网 www.juexinw.com
#include<math.h>
44、
欢迎访问抉信网 www.juexinw.com
int main()
45、
欢迎访问抉信网 www.juexinw.com
{
46、
欢迎访问抉信网 www.juexinw.com
int Sum(int a[]);
47、
欢迎访问抉信网 www.juexinw.com
int array[8],i;
48、
欢迎访问抉信网 www.juexinw.com
printf("输入一个8位二进制数:");
49、
欢迎访问抉信网 www.juexinw.com
for(i=0;i<8;i++)
50、
欢迎访问抉信网 www.juexinw.com
{
51、
欢迎访问抉信网 www.juexinw.com
scanf("%1d",&array[i]);
52、
欢迎访问抉信网 www.juexinw.com
}
53、
欢迎访问抉信网 www.juexinw.com
printf("转换为十进制数后是:%d",Sum(array));
54、
欢迎访问抉信网 www.juexinw.com
return 0;
55、
欢迎访问抉信网 www.juexinw.com
}
56、
欢迎访问抉信网 www.juexinw.com
int Sum(int a[])
57、
欢迎访问抉信网 www.juexinw.com
{
58、
欢迎访问抉信网 www.juexinw.com
//int power(int b); //声明求2的n次方的函数
59、
欢迎访问抉信网 www.juexinw.com
int n,i,sum=0,term;//n为指数,term为每一项的值,如1*(2*2),sum为总和
60、
欢迎访问抉信网 www.juexinw.com
for(i=0,n=7;i<8;i++,n--)
61、
欢迎访问抉信网 www.juexinw.com
if(n>=0)
62、
欢迎访问抉信网 www.juexinw.com
{//term=a[i]*power(n);
63、
欢迎访问抉信网 www.juexinw.com
term=a[i]*pow(2,n);
64、
欢迎访问抉信网 www.juexinw.com
sum=sum+term;
65、
欢迎访问抉信网 www.juexinw.com
}
66、
欢迎访问抉信网 www.juexinw.com
return sum;
67、
欢迎访问抉信网 www.juexinw.com
}

上一篇:mac重装系统教程 下一篇:喜马拉雅怎么接单

相关推荐

  • 安装包怎么安装
    安装包怎么安装 1.在电脑正常安装解压缩软件的前提下,右键选择解压,将该文件解压到指定位置。 2.解压完成后该文件即可正常运行,如果该文件是一般文……

    其他 发布于 2022-05-30 07:45:41 浏览 263

  • 电话被拉黑是什么提示
    电话被拉黑是什么提示 电话被拉黑,提示的情况不一样的。具体判断如下: 1.如果听到提示是您所拨打的用户正在通话中,说明对方把通话设置成手机自动挂断。 ……

    其他 发布于 2022-03-17 04:00:08 浏览 225

  • 股票短线操作技巧
    股票短线操作技巧 1、打开通达信炒股软件,在界面下方的按钮选择“A股”,该板块容纳了A股所有在上海、深圳市场上市的股票。注意版面上方的“涨幅”、……

    其他 发布于 2021-10-12 20:41:27 浏览 254

  • 抖音申诉无效怎么办
    抖音申诉无效怎么办 抖音账号申诉无效也不要着急,发布符合规范的作品,只要不封号,就是有机会。只需要学会正确制作视频的方法,在账号持续更新优质的内容,通……

    其他 发布于 2021-10-12 05:15:16 浏览 164

  • hpv是什么意思
    hpv是什么意思 HPV全称为人乳头瘤病毒,有两百多种亚种。是一种属于乳多空病毒科的乳头瘤空泡病毒A属,是球形DNA病毒,能引起人体皮肤黏膜的鳞状上皮……

    其他 发布于 2021-09-05 05:20:36 浏览 355

  • 弹射起步是什么意思
    弹射起步是什么意思 1、弹射起步是利用变速箱将发动机转速调节到最大扭矩的输出平台,从而实现在起跑的瞬间发动机就开始以最大扭矩输出,实现最佳加速度……

    其他 发布于 2021-07-02 08:10:29 浏览 304

  • 我的世界指令tp指令是什么
    我的世界指令tp指令是什么 我的世界指令tp指令是/tp玩家id或者/tp玩家id加对应位置的坐标,两个都可以。鎴戠殑涓栫晫鎸囦护tp鎸囦护锛/tp鐜╁id/tp玩家id+……

    其他 发布于 2021-05-30 17:37:47 浏览 185

  • lcd和tft屏幕有啥区别
    lcd和tft屏幕有啥区别 1、TFT屏幕就是液晶LCD屏幕中的一种,如:液晶电视、液晶电脑显示器、手机显示屏,是被动式显示。是靠背光源的发光,通过LCD两层玻璃的IT……

    其他 发布于 2020-10-10 18:26:11 浏览 315

  • 扁形动物有哪些
    扁形动物有哪些 扁形动物门可以分为以下3个纲:涡虫纲是扁形动物中最原始的类群,体表被纤毛,肠道较发达,体长5mm至60cm,已知约1千5百种,多数营自由生活。……

    其他 发布于 2020-07-09 20:02:02 浏览 254

  • 奥特七兄弟是哪几个
    奥特七兄弟是哪几个 奥特七兄弟分别是:老大佐菲奥特曼,老二初代奥特曼,老三赛文奥特曼,老四杰克奥特曼,老五艾斯奥特曼,老六泰罗奥特曼,老七雷欧奥特曼。还有……

    其他 发布于 2020-03-13 22:04:44 浏览 249