| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:谁可以帮我分析一下此段程序啊
只看楼主 加入收藏
小三三
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
谁可以帮我分析一下此段程序啊
void two_ten()
{
    char *p,s[20];
    long n;
    p=s;
    printf("请输入一个二进制数:");
    scanf("%s",p);n=0;
    while(*(p)!='\0')
    {
        n=n*2+*p-'0';
        p++;
    }
    printf("2进制转化为10进制:%d\n",n);
}
搜索更多相关主题的帖子: 二进制 void long 
2012-06-17 14:46
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:3 
可以先说下自己的理解 再和大家讨论下哪些地方比较模糊。


梅尚程荀
马谭杨奚







                                                       
2012-06-17 15:45
qq383264679
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:155
专家分:130
注 册:2012-1-19
收藏
得分:3 
编译都不通过
2012-06-17 16:04
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:3 
看下二进制转化为10进制的方法就清楚了

★★★★★为人民服务★★★★★
2012-06-17 16:15
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:3 
你定义了一个函数,不过你的tow_ten()函数没有返回值。因为你用了保留字void
void tow_ten()

2012-06-17 20:42
丿、浮生若梦
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-6-17
收藏
得分:3 
二进制转化到十进制的步骤是错误的, n=n*2+*p-'0';
如果你想转化的话首先就应该计算一下S输入的二进制数的长度i=strlen(s)
然后用循环语句
for(;i!=0;i--)
a*=2;
然后将a累加,就得出相应的十进制数字了
2012-06-17 20:52
丿、浮生若梦
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-6-17
收藏
得分:0 
回复 6楼 丿、浮生若梦
有误……多乘了一个2……
b=1;
for(a=1;i!=1;i--)
{a*=2;}
b+=a;
2012-06-17 20:55
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:3 
程序代码:
 while(*(p)!='\0')
    {
        n=n*2+*p-'0';//////(我想你是这里看不懂是吧 这里的意思就是把二进制的数一个一个的转化成十进制的 由于二进制的数是按照字符的形式存储到数组中 所以减去字符0就得倒数字0或者数字1 )
        p++;
    }

喜欢睡觉 却经常熬夜
2012-06-17 22:07
hamsters
Rank: 2
等 级:论坛游民
帖 子:33
专家分:54
注 册:2012-6-10
收藏
得分:3 
把two_ten改为c++编译通过
2012-06-17 23:09
快速回复:谁可以帮我分析一下此段程序啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016654 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved