У вас есть много способов. Нужно написать:
const unsigned char *data = (const unsigned char *)"00000000";
Другой, более рекомендуемый - объявить data
так, как должно быть:
const char *data = "00000000";
А когда вы передадите его своей функции:
myFunc((const unsigned char *)data);
Обратите внимание, что обычно строка unsigned char
является необычной. Массив беззнаковых символов более распространен, но вы не инициализируете его строкой («00000000»)
Ответ на ваше обновление
Если вам нужны необработанные двоичные данные, сначала позвольте мне сказать вам, что вместо unsigned char
вам лучше использовать большие контейнеры, такие как long int
или long long
. Это потому, что когда вы выполняете операции над двоичным литералом (который является массивом), ваши операции сокращаются на 4 или 8, что является повышением скорости.
Во-вторых, если вы хотите, чтобы ваш класс представлял двоичные значения, инициализируйте его не строкой, а отдельными значениями. В вашем случае будет:
unsigned char data[] = {0x30, 0x30, 0x30, 0x30, /* etc */}
Обратите внимание , что я предполагаю, что вы храните двоичный файл как двоичный файл! То есть вы получаете 8 битов в беззнаковом символе Если вы, с другой стороны, имеете в виду двоичный файл, как в строке 0 и 1, что не очень хорошая идея, но в любом случае вам не нужно unsigned char
и достаточно просто char
.