Разработка программы шифрования файлов и каталогов алгоритмом IDEA - C (СИ)
Формулировка задачи:
Всем привет, выдали нам заочникам курсовую. Вот само задание:
Тема: Разработка программы шифрования файлов и каталогов алгоритмом IDEA (режим электронной
кодовой книги)
Исходные данные: программа должна осуществлять шифрование и дешифрование файлов или
каталогов. При шифрации каталога все файлы в каталоге шифруются отдельно и объединяются в один
файл. При дешифрации каталога все файлы создаются в расшифрованном виде.
Я ни разу ещё не работал с битами, поэтому в самом начале и застрял. Вопрос таков: "
Как достать с текстового файла блок 64 бита (вместо символов) поделить их на 4 субблока по 16 бит и работать с ними дальше?
".Мне в голову пришла только идея брать из таблицы ASСII номер в 10-ой системе и переводить его в 2-ую систему тем самом получая то что надо. Но мне кажется что это бред и должен быть способ попроще который напрямую позволит работать с битами.
Вот код моего бреда на Pelles C:if ((OpenFile = fopen(NameFile,"rb")) == NULL) printf("error open file\n"); else while (!feof(OpenFile)) { memset(Buf, 0, sizeof(Buf)); //обнуляем переменную fread(Buf, 8, sizeof(char), OpenFile); //считываем 8 байт -> 64 бит for(i = 0; i < 8; i++) { bits = (int)Buf[i]; //преобразовываем в 10-ую систему printf("%d", bits); //выводим на экран /*требуеться 10-ую перевести в 2-ую и тут я понял что я пишу какойта бред*/ } printf("\n"); } fclose(OpenFile);
Подскажите статьи (книги) по теме "Работа с битами на Си", а то с универа никакой литературы не дали(не посоветовали).
Решение задачи: «Разработка программы шифрования файлов и каталогов алгоритмом IDEA»
textual
Листинг программы
unsigned int bit1 : 1;
Объяснение кода листинга программы
- Объявляется переменная
bit1
типа unsigned int, что означает беззнаковое целое число со знаком. - Устанавливается размер поля в 1 бит, что позволяет хранить только два значения: 0 и 1.
- Значение переменной
bit1
инициализируется значением 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д