写程序:读出二进制流中指定的几位
为了方便,二进制流放在字符串中,"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