首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

二进制数转换,该如何处理

2012-03-17 
二进制数转换#includeiostream#includefstream#includevectorusing namespace stdint main(){strin

二进制数转换
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;



int main()
{
string s="9";
vector<int> bb;
int sb[64];
ifstream in("binary.txt");
while(s!="-1")
{
getline(in,s);
for(int i=0;i<s.size();i++)
sb[i]=sb[i]-48;
int sum=0;
for(int j=0;j<i;j++)
{
int algo=1; 
if(sb[j]!=0)
{
if(j==0)
algo=1;
else
for(int k=0;k<j;k++)
algo*=2;
}
sum+=algo;
}
bb.push_back(sum);


}
for(int t=0;t<bb.size();t++)
cout<<bb[t];
}


从一个文件中读取出二进制数,但编译总通不过,帮忙看下是哪出了问题?

[解决办法]

C/C++ code
#include <iostream>#include <string>     //包含string头文件#include <fstream> #include <vector> using namespace std; int main() {     string s;     vector <int> bb;     int sb[64];     ifstream in("binary.txt");     while(!in.eof())         //s="-1",你是以-1作为结束判断符?    {         getline(in,s);         for(int i=0;i<s.size();i++)         {            sb[i]=s[i] - '0'; //要减去'0',而不是48        }        int sum=0;         for(int j=0;j<i;j++)         {             int algo=1;              if(sb[j]==0)             {                 continue;      //0直接跳过            }            else            {                for(int k=0;k<(i-j-1);k++) //k<(i-j-1)                    algo*=2;                  }            sum+=algo;        }         bb.push_back(sum);             }     for(int t=0;t<bb.size();t++)         cout<<bb[t]<<endl;     return 0;}
[解决办法]
楼上动作好快

热点排行