Расчет контрольных сумм у файла - С/Си - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем доброго здравия. Ребят, у меня с Си не очень, точнее сказать совсем никак. Помогите пожалуйста с кодом для следующей задачи, просмотрела где только можно и ничего не нашла. Задача: 1) Вычислить контрольную сумму CRC32 у файла и выдать на экран в HEX-фомате 2) Вычислить контрольную сумму CRC32 заголовка в 48 байт у данного файла и выдать на экран в НЕХ-формате 3) Вычислить контрольную сумму CRC32 остальной части данного файла и выдать на экран в НЕХ-формате 4) Произвести вычисление: "CRC32 всего файла - СRC32 заголовка - CRC32 остальной части", результат выдать на экран "0" или "Ошибка" Благодарю за помощь.

Решение задачи: «Расчет контрольных сумм у файла - С/Си»

textual
Листинг программы
TEMP1[31-0] <- BIT_REFLECT32 (SRC[31-0])
TEMP2[31-0] <- BIT_REFLECT32 (DEST[31-0])
TEMP3[63-0] <- TEMP1[31-0] « 32
TEMP4[63-0] <- TEMP2[31-0] « 32
TEMP5[63-0] <- TEMP3[63-0] XOR TEMP4[63-0]
TEMP6[31-0] <- TEMP5[63-0] MOD2 11EDC6F41H
DEST[31-0] <- BIT_REFLECT (TEMP6[31-0])

Объяснение кода листинга программы

  1. TEMP1[31-0] <- BIT_REFLECT32 (SRC[31-0]) В данном выражении используется функция BIT_REFLECT32, которая отражает биты 32-х битного числа. Значение переменной TEMP1 присваивается результат отражения битов числа SRC.
  2. TEMP2[31-0] <- BIT_REFLECT32 (DEST[31-0]) Аналогично первому выражению, только функция BIT_REFLECT32 применяется к переменной DEST. Результат присваивается переменной TEMP2.
  3. TEMP3[63-0] <- TEMP1[31-0] « 32 Здесь используется операция сдвига влево на 32 позиции числа, представленного в двоичной системе счисления. Результат присваивается переменной TEMP3.
  4. TEMP4[63-0] <- TEMP2[31-0] « 32 Аналогично третьему выражению, только вместо переменной TEMP1 используется переменная TEMP2. Результат присваивается переменной TEMP4.
  5. TEMP5[63-0] <- TEMP3[63-0] XOR TEMP4[63-0] Здесь используется операция побитового исключающего OR двух 64-х битных чисел. Результат присваивается переменной TEMP5.
  6. TEMP6[31-0] <- TEMP5[63-0] MOD2 11EDC6F41H В данном выражении используется операция модуля 2 числа TEMP5 и константы 11EDC6F41H. Результат присваивается переменной TEMP6.
  7. DEST[31-0] <- BIT_REFLECT (TEMP6[31-0]) В последнем выражении используется функция BIT_REFLECT, которая отражает биты числа TEMP6. Результат присваивается переменной DEST.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы