La représentation binaire est centrale en programmation système et en architecture des ordinateurs. Ce TP vise à relier les algorithmes de conversion à la représentation machine des entiers.
Implémenter et comparer deux méthodes de conversion décimal vers binaire, puis expliquer le cas des entiers signés.
- boucles et tableaux ;
- division entière et modulo ;
- opérateurs bit à bit (
>>,&) ; - affichage formaté.
- TP n°2 ;
- types entiers ;
- structures itératives.
Écrire deux programmes de conversion décimal/binaire :
- une méthode arithmétique (divisions successives), ;
- une méthode avec décalages et masques,.
puis comparer leurs sorties.
Implémenter une conversion par divisions successives et stockage des restes.
Implémenter une conversion par lecture des bits et mettant en oeuvre des décalages et masques.
Comparer les résultats produits pour les mêmes valeurs d'entrée.
Expliquer la représentation en complément à deux sur des exemples simples.
- Compilateur GNU C++ ;
- Système d'exploitation Linux, Mac OS X ou Ms-Windows ;
- Standard recommandé : C++11 ou supérieur.
Exemple 1 :
- Entrée :
10; - Sortie attendue :
00000000000000000000000000001010(sur 32 bits).
Exemple 2 :
- Entrée :
255; - Sortie attendue :
00000000000000000000000011111111.
Exemple 3 (si gestion signée) :
- Entrée :
-1; - Sortie attendue :
11111111111111111111111111111111.
g++ -std=c++11 -Wall -Wextra -o dec2bin1 dec2bin1.cxx
g++ -std=c++11 -Wall -Wextra -o dec2bin2 dec2bin2.cxxdec2bin1.cxx;dec2bin2.cxx;README.md(comparaison des deux méthodes et jeux de test).
- Proposer une version avec
std::bitset<32>; - Ajouter une conversion inverse binaire -> décimal.
- Exactitude des conversions ;
- Qualité de l'implémentation ;
- Clarté de l'explication sur les entiers signés ;
- Qualité des tests et du README.