我需要编写一个名为bitstring的函数,它接受在此函数中创建的unsigned char:
size_t bs2n(string s)
{
assert (s.size() > 0);
if (s.size() == 1)
return s[0]-'0';
else {
string smaller = s.substr(0,s.size()-1);
return 2 * bs2n(smaller) + s[s.size()-1] - '0';
}
}
此函数占用8位并返回0-255之间的无符号字符
我需要能够将其转换回来,但是在从类中写下函数参数和第一行时遇到了一个问题。
我拥有的是:
string unsignedchar bitstring(unsigned char)
我认为应该是:
string unsigned char bitstring(unsigned char val)
这会让我感觉更有意义,但仍然没有理由为什么我需要第一个无符号字符...
我应该如何写出函数的第一行?
答案 0 :(得分:0)
参数不是你的问题,它将是你的函数声明。您向函数
声明了两种返回类型string unsigned char bitstring(unsigned char val)
该函数返回一个字符串... wait no ...一个unsigned char ...你需要定义一个返回类型,例如遗漏字符串。你想要完成的是一个无符号字符数组,因此需要char返回一个指向字符的指针。
void bitstring(unsigned char val, unsigned char* array) //write to array