01/10/2018, 16:13

Encode/Decode bằng phương pháp toán tử NOT

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.

明玉 viết 18:28 ngày 01/10/2018

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;
}
Kaneki Ken viết 18:20 ngày 01/10/2018

Cảm ơn bạn nhiều. Để mình xem lại

Bài liên quan
0