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

写程序:读出二进制流中指定的几位,该如何处理

2012-03-22 
写程序:读出二进制流中指定的几位为了方便,二进制流放在字符串中,1122335566unsigned int GetBits(wstri

写程序:读出二进制流中指定的几位
为了方便,二进制流放在字符串中,"1122335566"
unsigned int GetBits(wstring str, unsigned int pos, unsigned int len)
{
}

wstring s("1122335566");
cout << Hex << GetBits(s, 12, 8) << endl;//输出23

求达人如何写这个函数

[解决办法]
是16进制吧
[解决办法]
你要注意 wstring 一个字符是占两个字节的
[解决办法]
读出来放哪里?你输出的23和读出指定位有什么关系?
[解决办法]
unsigned int pos, unsigned int len
这两个参数的意思应该是从pos位置开始读取2进制流,读的个数是len对吧
[解决办法]
帮你写了一个
你这个题目意思其实把字符串编码的字符转换为整形数字,然后按照4字节编码,然后拼凑成一个bit流,然后定位输出
楼主看下

C/C++ code
 #include <iostream>  using namespace std;unsigned int GetBits(char *p,int pos,int len){    int len1=strlen(p);    char *f=new char[len1];    int n=len/4;    int k=pos/4;    for(int i=0;i<n;i++)    {        f[i]=p[k+i];    }    f[i]='\0';    int num=atoi(f);    delete [] f;    return num;    }int main(){    char *p="1122335566";    cout<<GetBits(p,12,8);    }23Press any key to continue 

热点排行