A/c cho em hỏi mình giải mã phần nội dung file nhị phân ntn v? Em dùng mảng char để lưu phần nội dung đọc tư file nhị phân nhưng không biết giải mã ntn (em thấy tổng của 2 kí tự tương ứng là 16 nhưng khi đọc ra chả thì không biết giải mã sao)? Xin ac cho em hướng dẫn.
Encode/Decode bằng phương pháp toán tử NOT
Bạn không cần dùng mảng gì hết, cứ đọc đến đâu thì ghi đến đó thôi
// Example program
#include <iostream>
#include <cstdint>
#include <cstdio>
uint32_t magic = *(uint32_t*)"ML18";
int giaima(char *fileNameIn, char *fileNameOut)
{
auto inputFile = fopen(fileNameIn, "rb");
uint32_t header;
uint32_t sumOfBytes;
fread(&header, sizeof(header), 1, inputFile);
if (header != magic) return 1;
fread(&sumOfBytes, sizeof(sumOfBytes), 1, inputFile);
auto outputFile = fopen(fileNameOut, "wb");
unsigned char _byte;
int test;
uint32_t rSumOfBytes = 0;
while ((test = fgetc(inputFile)) != EOF) {
_byte = ~(unsigned char)test;
rSumOfBytes += _byte;
fwrite(&_byte, 1, 1, outputFile);
}
if (rSumOfBytes != sumOfBytes) return 2;
return 0;
}
int main()
{
std::cout << magic;
}
4 Likes
Cảm ơn bạn nhiều. Để mình xem lại

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?