Имеется массив:
byte customChar[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000
};
В одной из функций я собираю строку вида "10101". Есть ли функция или способ для преобразования этой строки к виду B10101 для добавления как элемент к массиву customChar?
Чтобы преобразовать число, заданное строкой, в конкретное числовое значение можно использовать функции типа std::stoi или std::strtol, где дополнительно нужно указать систему счисления, в текущем случае, это 2. Первая функция требует наличия поддержки стандарта C++11, вторая будет работать и без оного:
#include <cstdlib>
byte value = static_cast<byte>(std::strtol("10001", NULL, 2));
После преобразования можно записать значение в требуемую ячейку массива:
customChar[index] = value;
typedef unsigned char bin_t;
void binToString(bin_t number, char *result)
{
result[0] = 'B';
for( bin_t n = sizeof(bin_t); n > 0; --n) {
result[sizeof(bin_t) - n + 1] = (number & (1 << (n - 1))) ? '1' : '0';
}
result[sizeof(bin_t) + 1] = 0;
}
...
char str[sizeof(bin_t)+2];
bin_t number = 0b0101001;
binToString(number, str);
std::cout << str;
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники