Вычисление байтов коррекции для моего QR-кодаC#

Место общения программистов C#
Ответить
Anonymous
 Вычисление байтов коррекции для моего QR-кода

Сообщение Anonymous »

Я делаю генератор QR-кода и сейчас на последнем этапе. Все, что мне нужно сделать сейчас, это вычислить байты коррекции, чтобы сканер прочитал мой QR-код.
https://www.thonky.com/qr-code-tutorial/error -correction-coding#step-9-divide-the-message-polynomial-by-the-generator-polynomial
Эта ссылка показывает, как рассчитать байты коррекции, и это то, что я использую в качестве ссылку для реализации в моем коде.
Моя проблема в том, что я пытался выполнить тот же шаг и инструкцию, но не получил правильного результата.
Вот мой код для расчета байтов коррекции. Моя функция получила два массива.
Массив messagePolynomial содержит контекст QR-кода, где каждый символ находится в ASCII-коде. Генератор Array имеет полином генератора. Что мне нужно сделать, так это через полиномиальное деление получить байты коррекции. ссылка выше объяснит это подробно.
Сейчас я работаю над прототипом с фиксированным размером и длиной.
Размер Qr-кода это 21 x 21 версия 1 с уровнем коррекции L (низкий), что означает, что мне нужно 7 байтов коррекции, чтобы мой QR-код стал функционировать.
Мой полином-генератор выглядит так [0, 87, 229, 146, 149, 238, 102, 21];
Мой полином сообщения выглядит так [226, 72, 250, 250, 61, 5, 43, 61, 155, 250, 195, 138]< /p>
Значения указаны в алфавитной записи.

Код: Выделить всё


private int[] CalculateCorrectionBytes(int[] messagePolynomial, int[] generator)
{
int[] log = buildLog(buildAntiLog());
int[] antilog = buildAntiLog();
int[] correctionBytes = new int[generator.Length];

int[] message = (int[])messagePolynomial.Clone();

Console.WriteLine($"Generator polynomial in Alpha notation: [{string.Join(", ", generator)}]\n");

for (int i = 0; i < message.Length; i++)
{

Console.WriteLine($"{i}. Message character as integer: {message[i]}");
message[i] = log[message[i]];
Console.WriteLine($"{i}. Message character in Alpha notation: {message[i]}");
Console.WriteLine("________________________________");
}

for (int i = 0; i < 5; i++)
{
int leadTerm = message[0];
Console.WriteLine($"\n>>>>>  {i + 1}. Calculation step!  

Подробнее здесь: [url]https://stackoverflow.com/questions/79065794/calculating-correction-bytes-for-my-qr-code[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»