Merci de m'éclairer, je comprends plus rien.
Un u32: 32 bits = 4 * 1 byte
donc un byte = 8bits = (u)int8_t
Alors quelqu'un peut m'expliquer le résultat de ceci?
http://ideone.com/RG3yxKPourquoi quand je passe par std::cout, seuls les 4 premiers bits sont gérés dans mon byte? par printf, tout est normal...
#include <iostream>
#include <cstdint>
#include <bitset>
int main() {
uint32_t x = 0x0FFFFE35;
std::cout << std::bitset<32>(x) << " " << std::bitset<8>(((int8_t)x));
std::cout << std::endl;
std::cout << std::hex << x << " " << std::hex << uint8_t(x & 0xFF);
std::cout << std::endl;
std::cout << std::hex << x << " " << std::hex << (x & 0xFF);
uint8_t byte = 0x35;
printf("\nvia printf: %X\n", byte);
std::cout << std::hex << x << " " << std::hex << byte;
return 0;
}