Мне необходимо написать функцию с именем bitstring, которая принимает символ без знака, созданный в этой функции:
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)
что было бы чертовски больше смысла, но все равно не имеет смысла, зачем мне нужен первый беззнаковый символ …
Как мне написать первую строку функции?
Параметры не ваша проблема, это было бы объявление вашей функции. Вы объявляете два типа возврата в функцию
string unsigned char bitstring(unsigned char val)
Функция возвращает строку … подождите нет … беззнаковый символ … вам нужно определить только один тип возврата, например, пропустите строку. то, что вы хотите выполнить, — это массив неподписанных символов, поэтому требуется, чтобы символ возвращал указатель на символы.
void bitstring(unsigned char val, unsigned char* array) //write to array
Других решений пока нет …