ho provato seguente:dump hex galleggiante in C++
std::cout << std::hex << 17.0625;
Ma scaricato in decimale. Mi piacerebbe vedere 11.01 (17.0625 in hex). Come posso stampare un valore in virgola mobile in hex?
Si prega di non offrire soluzioni come:
void outhexdigits(std::ostream& out, fp_t d, int max_chars=160)
{
while(d > 0. && max_chars)
{
while(d < 1. && max_chars){
out << '0';
--max_chars;
d*=16;
}
if (d>=1. && max_chars) {
int i = 0;
while (d>=1.)
++i, --d;
out << std::hex << i;
--max_chars;
}
}
}
Esiste un modo per fare uscire numeri float in esadecimale in STL/aumentare?
Onestamente, trovo che C++ sia piuttosto fastidioso durante l'emissione di tali moduli formattati. In questi casi, utilizzo la stampa in stile C formattata. – Xephon
Dovrai 'memcpy' in un' int', e stampare la rappresentazione esadecimale di quello. 'memcpy' è l'unico modo sicuro per visualizzare i bit che costituiscono un oggetto di un tipo come un altro tipo senza colpire il comportamento non definito (si ottiene invece un comportamento non specificato, e spetta a te sapere che i bit costituiscono un' int valido 'rappresentazione). – BoBTFish
Vuoi la rappresentazione esadecimale del layout di memoria di un 'double' o stampare un valore FP leggibile dall'uomo nella base 16? –