Ce programme vous propose de lire une information (nombre ou caractère) selon un format (type) que vous aurez choisi auparavant,
moyennant quoi il vous montre les octets qui représentent cette information selon différents formats (types),
à savoir les types short, unsigned short, int, unsigned int, char et
unsigned char.
Voici un exemple d'exécution :
jfp% ./a.out
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
4
Taper un (grand) nombre, positif ou négatif : -1
===========================================================================================
J'ai lu : 4294967295
1111 1111 1111 1111 1111 1111 1111 1111
Cette information interprétée comme un short: -1
1111 1111 1111 1111
Cette information interprétée comme un unsigned short: 65535
1111 1111 1111 1111
Cette information interprétée comme un int: -1
1111 1111 1111 1111 1111 1111 1111 1111
Cette information interprétée comme un char: ?
1111 1111
Cette information interprétée comme un unsigned char: ?
1111 1111
===========================================================================================
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
1
Taper un (petit) nombre, positif ou négatif : 65535
===========================================================================================
J'ai lu : -1
1111 1111 1111 1111
Cette information interprétée comme un unsigned short: 65535
1111 1111 1111 1111
Cette information interprétée comme un int : -1
1111 1111 1111 1111 1111 1111 1111 1111
Cette information interprétée comme un unsigned int: 4294967295
1111 1111 1111 1111 1111 1111 1111 1111
Cette information interprétée comme un char: ?
1111 1111
Cette information interprétée comme un unsigned char: ?
1111 1111
===========================================================================================
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
5
Taper un caractère (pas un nombre !) : x
===========================================================================================
J'ai lu : x
0111 1000
Cette information interprétée comme un short: 120
0000 0000 0111 1000
Cette information interprétée comme un unsigned short: 120
0000 0000 0111 1000
Cette information interprétée comme un int: 120
0000 0000 0000 0000 0000 0000 0111 1000
Cette information interprétée comme un unsigned int: 120
0000 0000 0000 0000 0000 0000 0111 1000
Cette information interprétée comme un unsigned char: x
0111 1000
===========================================================================================
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
5
Taper un caractère (pas un nombre !) : é
===========================================================================================
J'ai lu : ?
1100 0011
Cette information interprétée comme un short: -61
1111 1111 1100 0011
Cette information interprétée comme un unsigned short: 65475
1111 1111 1100 0011
Cette information interprétée comme un int: -61
1111 1111 1111 1111 1111 1111 1100 0011
Cette information interprétée comme un unsigned int: 4294967235
1111 1111 1111 1111 1111 1111 1100 0011
Cette information interprétée comme un unsigned char: ?
1100 0011
===========================================================================================
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
0
Au-revoir !
Ce programme est écrit en C++, il se compose de deux fichiers ChBinaireU.cpp et binaireU.h.
Le premier contient le programme principal, le second la déclaration d'une fonction générique C++
pour l'affichage d'une chaîne de bits conformément à un type.
[Cette fonction prend deux arguments : le type et le nombre ;
pour le type ce n'est pas réalisable en C, d'où le recours à C++.]
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
5
Taper un caractère (pas un nombre !) : é
===========================================================================================
J'ai lu : é
1110 1001
Cette information interprétée comme un short: -23
1111 1111 1110 1001
Cette information interprétée comme un unsigned short: 65513
1111 1111 1110 1001
Cette information interprétée comme un int: -23
1111 1111 1111 1111 1111 1111 1110 1001
Cette information interprétée comme un unsigned int: 4294967273
1111 1111 1111 1111 1111 1111 1110 1001
Cette information interprétée comme un unsigned char: é
1110 1001
===========================================================================================
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
6
Taper un caractère (pas un nombre !) : é
===========================================================================================
J'ai lu : é
1110 1001
Cette information interprétée comme un short: 233
0000 0000 1110 1001
Cette information interprétée comme un unsigned short: 233
0000 0000 1110 1001
Cette information interprétée comme un int: 233
0000 0000 0000 0000 0000 0000 1110 1001
Cette information interprétée comme un unsigned int: 233
0000 0000 0000 0000 0000 0000 1110 1001
Cette information interprétée comme un unsigned char: é
1110 1001
===========================================================================================
Quel type de donnée voulez-vous entrer ?
0: arret, 1: short, 2: unsigned short, 3: int, 4: unsigned int, 5: char, 6: unsigned char)
------------------------------------------------------------------------------------------
0
Au-revoir !