Как Понять именно, на чём у тебя ошибка в кодировании символов или бинарного кода?
я начинающий кодер, но у меня, решая задачи, появилась проблема - мой код отказывался декодить длинные сообщения - толи ему не нравится в нём 0, толи просто в ASCII нету цифр, толи взорвалась из за не правильно поставлены радиус циклов. вот правила кодировки -
Входное сообщение, состоящее из символов ASCII (7 бит), кодируется в блоки по 0, где каждый блок отделяется от другого блока пробелом. Два последовательных блока используются для получения серии битов с одинаковыми значениями (только значения 1 или 0). Первый блок всегда содержит 0 или 00, где если это 0, то серия содержит 1, иначе она содержит 0. Второй блок содержит число 0, которое представляет количество битов в серии.
вот сообщение -
keyboard has 2 keys: 0 and white space.
а вот и мой код -
#include <iostream>
#include <string>
using namespace std;
int main() {
string message;
cin >> message;
string summ = "";
int pre = -1;
for (int i = 0; i < message.length(); i++)
{
for (int j = 6; j >= 0; j--)
{
int bit = (int)message[i] >> j & 1;
if (bit != pre)
{
if (pre != -1)
{
summ += " ";
}
summ += (1 == bit) ? "0 " : "00 ";
pre = bit;
}
summ += "0";
}
}
cout << summ << endl;
}
И можете, также сказать, на каких основаниях вы находите незаметные ошибки, или просто ходите по каждой строке?