| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:菜鸟问一个十进制向二进制的转换问题
只看楼主 加入收藏
许苏娟
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:9
注 册:2010-4-3
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
菜鸟问一个十进制向二进制的转换问题
#include"iostream.h"
#include"math.h"
struct Stack{
    float *data;
    int size;
    int memNum;
}
 initStack(Stack &s,int size)
{
    s.data=new float[size];
    if(s.data==NULL)
        return 0;
    s.memNum=0;
    s.size=size;
    return 1;
}
float popStack(Stack &s,int &num)
{
    if(s.memNum==0)
        return 0;
    num=s.data[--memNum];
    return 1;
}
float pushStack(Stack &s,float mem)
{
    if(s.memNum==s.size)
        return 0;
    s.data[memNum++]=mem;
    return 1;
}
float decTobina(float n,Stack s)
{
    while(n!=0)
    {if(int(n%2)==0)
    pushStack(s,0);
    pushStack(s,1);
    n=n/2;
    return 1;
    }
    void main()
    {
        int i;
        float a[50],*num[50];
        Stack newstack;
        initStack(newstack,32);
        for(i=0;i<50;i++)
            cin>>a[i];
        for(i=0;i<50;i++)
        {
            decTobina(a[i],newstack);
            popStack(newstack,num[i]);
        }
        for(i=0;i<50;i++)
            cout<<a[i]<<"-->"<<num[i]<<endl;
    }
运行时出错如下:
--------------------Configuration: 十二转换 - Win32 Debug--------------------
Compiling...
十二转换.cpp
C:\Documents and Settings\Administrator.WWW-99FD08AFD26\桌面\十二转换.cpp(12) : error C2440: 'return' : cannot convert from 'const int' to 'struct Stack'
        No constructor could take the source type, or constructor overload resolution was ambiguous
C:\Documents and Settings\Administrator.WWW-99FD08AFD26\桌面\十二转换.cpp(15) : error C2440: 'return' : cannot convert from 'const int' to 'struct Stack'
        No constructor could take the source type, or constructor overload resolution was ambiguous
C:\Documents and Settings\Administrator.WWW-99FD08AFD26\桌面\十二转换.cpp(21) : error C2065: 'memNum' : undeclared identifier
C:\Documents and Settings\Administrator.WWW-99FD08AFD26\桌面\十二转换.cpp(21) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
C:\Documents and Settings\Administrator.WWW-99FD08AFD26\桌面\十二转换.cpp(34) : error C2296: '%' : illegal, left operand has type 'float'
C:\Documents and Settings\Administrator.WWW-99FD08AFD26\桌面\十二转换.cpp(34) : fatal error C1903: unable to recover from previous error(s); stopping compilation
执行 cl.exe 时出错.
因为刚学C++,所以写的比较幼稚,希望各位大侠帮忙看一下~
搜索更多相关主题的帖子: 二进制 十进制 
2010-05-24 17:53
dengyl01
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2009-2-3
收藏
得分:10 
我这有个10进制转2进制的函数,可以参考下
string TenturnTwo(long varNum)        //'把一个十进制数转换为二进制数函数
{
    char str3[20];
    int ModNum;
    string RetStr;
    while (varNum > 0)
    {
        ModNum = varNum % 2;
        varNum = varNum / 2;
        RetStr=itoa(ModNum,str3,10)+RetStr;
    }   
    return RetStr;     
}
2010-05-25 11:57
ttuufifa
Rank: 2
等 级:论坛游民
威 望:1
帖 子:6
专家分:38
注 册:2010-5-23
收藏
得分:10 
initStack(Stack &s,int size)
 你有很多都是不小心错的 返回类型里没有INI 所以又错误
2010-05-25 22:49
快速回复:菜鸟问一个十进制向二进制的转换问题
数据加载中...
 
   



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

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