Odczyt 4 bajtów z pliku otwartego w trybie binarnym do bufora

0

Cześć,
potrzebuję pobrać z pliku otwartego w trybie binarnym 4 bajty (32 bity) do bufora aby następnie podzielić to (XOR) przez wielomian.
Jak mam zadeklarować bufor, tak aby przechować w nim 4 bajty i móc wykonać na nim funkcję XOR? Jakiego typu ma być zmienna będąca buforem?

	ifstream Plik;
	Plik.open(NazwaPliku.c_str(), ios::binary);
	??? bufor;
	bufor = Plik.get();
2

Jak masz C++<17

uint8_t buf[4]

W C++17:

std::byte buf[4];
0

i jak mam teraz wykonać XOR? Kolejno na każdym elemencie tablicy?

#define Wielomian 0x04c11db7

	uint8_t bufor[4];
	for (int i=0;i<4;i++)
	{
		bufor[i] = Plik.get();	
	};
	
	for (int i=0;i<4;i++)
	{
		bufor[i] = (bufor[i] ^ Wielomian);
	};
0
uint32_t mask = 0x04c11db7;
uint8_t* mask_bytes = reinterpret_cast<uint8_t*>(&mask);
uint8_t buf[4];
plik.read(buf, 4);
for(int i = 0; i < 4; i++)
    buf[i] ^= mask_bytes[i];

Pisałem z głowy, ale powinno być w miarę w porządku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1