Расчет контрольных сумм у файла - С/Си - 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])
Объяснение кода листинга программы
TEMP1[31-0] <- BIT_REFLECT32 (SRC[31-0])
В данном выражении используется функцияBIT_REFLECT32
, которая отражает биты 32-х битного числа. Значение переменнойTEMP1
присваивается результат отражения битов числаSRC
.TEMP2[31-0] <- BIT_REFLECT32 (DEST[31-0])
Аналогично первому выражению, только функцияBIT_REFLECT32
применяется к переменнойDEST
. Результат присваивается переменнойTEMP2
.TEMP3[63-0] <- TEMP1[31-0] « 32
Здесь используется операция сдвига влево на 32 позиции числа, представленного в двоичной системе счисления. Результат присваивается переменнойTEMP3
.TEMP4[63-0] <- TEMP2[31-0] « 32
Аналогично третьему выражению, только вместо переменнойTEMP1
используется переменнаяTEMP2
. Результат присваивается переменнойTEMP4
.TEMP5[63-0] <- TEMP3[63-0] XOR TEMP4[63-0]
Здесь используется операция побитового исключающего OR двух 64-х битных чисел. Результат присваивается переменнойTEMP5
.TEMP6[31-0] <- TEMP5[63-0] MOD2 11EDC6F41H
В данном выражении используется операция модуля 2 числаTEMP5
и константы11EDC6F41H
. Результат присваивается переменнойTEMP6
.DEST[31-0] <- BIT_REFLECT (TEMP6[31-0])
В последнем выражении используется функцияBIT_REFLECT
, которая отражает биты числаTEMP6
. Результат присваивается переменнойDEST
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д