420 231--Travail pratique #1--Énoncé
    
    
      Ce qui suit constitue l'énoncé du travail pratique #1 (TP1).
    
    
    
      Raccourcis vers les prototypes de sous-programmes demandés
    
    
    
    
    
      Contraintes générales à respecter
    
    
      Vous devrez:
    
    
    
    
      Détail de l'énoncé
    
    
      Le travail consiste à implanter cinq (5) sous-programmes permettrant de manipuler des bits et des octets.
    
    
      Ces sous-programmes respecteront les prototypes suivants:
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Lire_Bit
// Intrant(s):
//    Mot:       entier duquel lire un bit
//    Position:  position du bit à lire
// Extrant(s):
//    retourne «true» si le bit à la position «Position» dans
//    l'entier «Mot» a la valeur 1, et «false» sinon
// Description:
//    Retourne la valeur du bit à la position «Position» dans
//    l'entier «Mot»
////////////////////////////////////////////////////////////
bool Lire_Bit (unsigned short Mot, unsigned char Position); | 
    
    
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Forcer_Bit
// Intrant(s):
//    Mot:       entier dans lequel forcer un bit
//    Position:  position du bit à forcer
//    Valeur:    valeur à affecter au bit
// Extrant(s):
//    Mot:       entier dans lequel le bit aura été forcé
// Description:
//    Affecte la valeur «Valeur» au bit à la position
//    «Position» dans l'entier «Mot»
////////////////////////////////////////////////////////////
void Forcer_Bit (unsigned short &Mot,
                 unsigned char Position,
                 bool Valeur); | 
    
    
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Inverser_Bit
// Intrant(s):
//    Mot:       entier dans lequel inverser un bit
//    Position:  position du bit à inverser
// Extrant(s):
//    Mot:       entier dans lequel le bit aura été inversé
// Description:
//    Inverse la valeur du bit à la position «Position»
//    dans l'entier «Mot»
////////////////////////////////////////////////////////////
void Inverser_Bit (unsigned short &Mot,
                   unsigned char Position); | 
    
    
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Lire_Octet
// Intrant(s):
//    Mot:       entier duquel lire un octet
//    Partie:    partie du mot à lire (partie haute ou basse)
// Extrant(s):
//    retourne la valeur de l'octet lu
// Description:
//    Retourne la valeur de la partie «Partie» du mot «Mot»
////////////////////////////////////////////////////////////
unsigned char Lire_Octet (unsigned short Mot,
                          partie_de_mot Partie); | 
    
    
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Forcer_Octet
// Intrant(s):
//    Mot:       entier dans lequel forcer un octet
//    Partie:    partie de mot à forcer
//    Valeur:    valeur à affecter à l'octet
// Extrant(s):
//    Mot:       entier dans lequel l'octet aura été forcé
// Description:
//    Affecte la valeur «Valeur» à la partie «Partie» de
//    l'entier «Mot»
////////////////////////////////////////////////////////////
void Forcer_Octet (unsigned short &Mot,
                   partie_de_mot Partie,
                   unsigned char Valeur); | 
    
    
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Tester_Bit
// Intrant(s):
//    Mot:       entier duquel tester un bit
//    Position:  position du bit à tester
//    Valeur:    valeur pour à laquelle comparer ce bit
// Extrant(s):
//    retourne «true» si le bit à la position «Position» dans
//    l'entier «Mot» a la valeur «Valeur», et «false» sinon
// Description:
//    Vérifie si la valeur d'un bit de l'entier passé en
//    paramètre est identique à celle spécifiée à l'appel
////////////////////////////////////////////////////////////
bool Tester_Bit (unsigned short Mot,
                 unsigned char Position,
                 bool Valeur); | 
    
    
    
    
    
    
      
        | ////////////////////////////////////////////////////////////
// Nom: Imprimer_Mot_Binaire
// Intrant(s):
//    Mot:       entier à afficher
// Extrant(s):
//    aucun
// Description:
//    Affiche la valeur binaire d'un entier
////////////////////////////////////////////////////////////
void Imprimer_Mot_Binaire (unsigned short Mot); | 
    
    
    
    
      
        | Note: | la procédure «Imprimer_Mot_Binaire()», si elle reçoit l'entier «139» (ou «0x008B»), devra afficher «0000000010001011». | 
    
    
    
      Raccourcis vers les prototypes de sous-programmes demandés