Bonjour,
je voudrais convertir une valeur double en (const uint8_t*) en C++ ?
merci
Version imprimable
Bonjour,
je voudrais convertir une valeur double en (const uint8_t*) en C++ ?
merci
Bonjour,
Je ne sais pas pourquoi vous voulez un const uint8_t* (c'est-à-dire, un pointeur sur un entier non signé codé sur 8 bits), mais pour convertir un nombre à virgule vers un entier, vous pouvez utiliser std::floor, std::ceil, std::round ou std::trunc. À vous de choisir la politique d'approximation de votre nombre à virgule ;).
Veux-tu vraiment convertir un nombre à virgule flottante en pointeur, ou cherches-tu plutôt à accéder aux "vrais" bits composant le nombre?
Dans le second cas, le plus simple est d'utiliser un union:
Code:
1
2
3
4
5
6
7
8
9
10
11
12 union prepareForTrouble { uint8_t makeIt[sizeof(double)]; double preserve; }; void Denounce(double d) { prepareForTrouble u; u.preserve = d; const uint8_t *unite = u.makeIt; }