Bonjour à tous,
Je crois que le titre est très clair. J'ai tenté ce code :
Code :
- #include <stdio.h>
- #define TYPE int
- #define VALEUR_DE_VAR -8
- int main(void)
- {
- TYPE var = VALEUR_DE_VAR ;
- TYPE var_temp ;
- /*
- * Pour faire des opérations sur var
- * Il doit être du même type que var
- * Je pars du principe que 1 = 000...0001 en binaire
- * quel que soit le type utilisé (pas sûr ..?)
- */
- TYPE un = 1 ;
- int nbre_bits = sizeof(var) * 8 ;
-
- printf( "Le contenu de \'var\' est codé sur un total de :\n" ) ;
- printf( " --> %2d bytes (ou octets)\n" , sizeof(var) ) ;
- printf( " --> %2d bits\n\n" , nbre_bits ) ;
- printf("Son code binaire est :\n" ) ;
- int i ;
- for( i = nbre_bits-1 ; i >= 0 ; i = i-1 )
- {
-
- var_temp = (var >> i) ;
- if( (var_temp & un) == 1 )
- {
- printf("1" ) ;
- }
- else
- {
- printf("0" ) ;
- }
-
- }
- return(0) ;
-
- }
|
Est-il correct ? etc.
Il ne marche que pour une variable de type int. Il plante pour une variable de type float par exemple. Or le titre est clair : "comment afficher le code binaire du contenu d'une variable quelconque", donc par exemple de type float.
En fait, j'ai déjà eu une discussion là dessus sur un autre forum : ici. Mais j'ai l'impression que ce fil est terminé et je reste un peu sur ma faim. C'est pourquoi je tente le coup ici.
Merci d'avance.
François
PS : attention, je débute
Message édité par SiscoL le 05-03-2008 à 15:50:15