Les opérateurs de masque



Documents pareils
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Représentation d un entier en base b

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Algorithmique et Programmation, IMA

Informatique Générale

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Programmation en langage C

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Licence Sciences et Technologies Examen janvier 2010

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Compression de Données - Algorithme de Huffman Document de Conception

Cours Langage C/C++ Programmation modulaire

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours d initiation à la programmation en C++ Johann Cuenin

Connexion d'un Ordi35 à une ClubInternet Box en WiFi

Initiation. àl algorithmique et à la programmation. en C

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)


Programmation C. Apprendre à développer des programmes simples dans le langage C

Le langage C. Introduction, guide de reference

I. Introduction aux fonctions : les fonctions standards

Plan du cours. Historique du langage Nouveautés de Java 7

Programmation C++ (débutant)/instructions for, while et do...while

Conventions d écriture et outils de mise au point

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Bases de programmation. Cours 5. Structurer les données

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Le prototype de la fonction main()

UE Programmation Impérative Licence 2ème Année

Les structures de données. Rajae El Ouazzani

Acer edatasecurity Management

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

INITIATION A LA PROGRAMMATION

1.6- Génération de nombres aléatoires

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Les arbres binaires de recherche

Chapitre 2. Classes et objets

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

Cours Programmation Système

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

V- Manipulations de nombres en binaire

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Cours d Algorithmique et de Langage C v 3.0

Chapitre 10. Les interfaces Comparable et Comparator 1

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Programmation système de commandes en C

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

La programmation des PIC en C. Les fonctions, les interruptions.

Caractéristiques techniques INVERTER 9 SF INVERTER 9 HP INVERTER 12 SF INVERTER 12 HP

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

SUPPORT DE COURS. Langage C

Programmation Classique en langage C

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

STAGE IREM 0- Premiers pas en Python

Introduction au langage C

Annexe : La Programmation Informatique

Tutorial Cobian Backup

Ordinateurs, Structure et Applications

Projet Matlab : un logiciel de cryptage

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

IV- Comment fonctionne un ordinateur?

MPI Activité.10 : Logique binaire Portes logiques

TP : Gestion d une image au format PGM

Programmation Structurée en Langage C

Claude Delannoy. 3 e édition C++

Programmation système I Les entrées/sorties

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Conversion d un entier. Méthode par soustraction

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Langage Éric Guérin 5 octobre 2010

Rappels Entrées -Sorties

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

Structurer ses données : les tableaux. Introduction à la programmation

Les structures. Chapitre 3

Solutions du chapitre 4

Architecture de l ordinateur

OS Réseaux et Programmation Système - C5

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Le langage C. Séance n 4

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Présentation de la centrale VIGIK DGM1

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

Programmation impérative

Transcription:

Les opérateurs de masque Les masques en Informatique Industrielle 0 1 0 1 0 0 1 1 1 ET binaire (&) ou AND On constate pour le ET bit à bit : le 0 est l'élément absorbant le 1 est l'élément neutre 0 1 1 1 0 1 1 1 1 OU binaire ( ) ou OR On constate pour le OU bit à bit : le 0 est l'élément neutre le 1 est l'élément absorbant Les autres opérateurs très utilisés : variable >> n : décalage à droite de n bits du contenu de la variable variable << n : décalage à gauche de n bits du contenu de la variable ~variable : inversion bit à bit du contenu de la variable 0 1 1 1 0 1 1 1 0 OU exclusif (^) ou XOR On constate pour le OU EXCLUSIF : le 0 est l'élément neutre le 1 est l'élément inverseur Remarques : le OU EXCLUSIF a des propriétés remarquables... 1. variable = variable^variable; // variable est mise à 0! 2. Cryptage et décryptage simple XOR #include <stdio.h> int main() unsigned char data, key, datacrypt, datadecrypt; data = 'A'; // la data à crypter key = 'X'; // la clé // cryptage XOR datacrypt = data ^ key; printf("data=%c (0x%2X) > datacrypt=0x%2x\n", data, data, datacrypt); // décryptage XOR datadecrypt = datacrypt ^ key; printf("datacrypt=0x%2x > datadecrypt=%c (0x%2X)\n", datacrypt, datadecrypt, datadecrypt); return 0; LT LaSalle Avignon 1/5 BTS IRIS 2005 2008 tv

Exercices sur les masques Les masques en Informatique Industrielle Soit un octet dont les 8 bits représentent la commande individuelle d'éléments chauffants (8 bits = 8 chauffages). Par exemple, si le bit 0 est à 1 alors le chauffage n 0 est allumé et si le bit 0 est à 0 alors le chauffage n 0 est éteint etc... Cette installation est simplement vue par le programmeur en informatique industrielle : La difficulté est de commander individuellement chaque chauffage (donc sans toucher à l'état des autres chauffages). 1. Donner une déclaration en C de la variable commandechauffages. 2. Ecrire la commande pour activer seulement le chauffage n 3. X X X X 0 X X X = état précédent X X X X 1 X X X = activation du chauffage n 3 LT LaSalle Avignon 2/5 BTS IRIS 2005 2008 tv

3. Ecrire la commande pour éteindre seulement le chauffage n 6. X 1 X X X X X X = état précédent X 0 X X X X X X = activation du chauffage n 6 Remarque : l'écriture de valeur sans signification dans un programme est à proscrire pour des raisons de debugage, de maintenance et d'évolution (par exemple 0xFE??) 4. Suite à la remarque précédente, proposer une (ou des) solutions pour éviter d'utiliser des valeurs sans signification. 5. Que réalise ces lignes de codes? Compléter le tableau ci dessous. #define ARRET_CHAUFFAGES #define CHAUFFAGE_3 #define CHAUFFAGE_2 #define CHAUFFAGE_1 #define CHAUFFAGE_0 0x00 0x08 0x04 0x02 0x01 en hexa Action commandechauffages = ARRET_CHAUFFAGES; 0 0 = 0x00 état initial à l'arrêt commandechauffages = CHAUFFAGE_3; 0 = 0x commandechauffages &= ~CHAUFFAGE_3; 0 = 0x commandechauffages = (CHAUFFAGE_1 CHAUFFAGE_0); 0 = 0x commandechauffages &= ~(CHAUFFAGE_1 CHAUFFAGE_0); 0 = 0x commandechauffages = CHAUFFAGE_2; 0 = 0x LT LaSalle Avignon 3/5 BTS IRIS 2005 2008 tv

On désire maintenant connaître l'état des chauffages individuellement. 6. Donner une déclaration en C de la variable etatchauffages. 7. Afficher l'état logique du chauffage n 2. X X X X X 0/1 X X = état des chauffages /1 0 0 = état du chauffage n 2 0 0/1 = état booléen du chauffage n 2 if( etatchauffage == 1 ) printf("chauffage n 2 : allumé\n"); else printf("chauffage n 2 : éteint\n"); 8. Ecrire la fonction fabriquercommandechauffage() qui reçoit en paramètres le numéro de chauffage (0 à 7) et l'action à réaliser (0 ou 1) et qui retourne la valeur de la commande. #define ARRET 0 #define MARCHE 1 #define OFF 0 #define ON 1 typedef unsigned char BYTE; // définition du type BYTE (c'est un unsigned char)... fabriquercommandechauffage(...,...) LT LaSalle Avignon 4/5 BTS IRIS 2005 2008 tv

9. Dans la fonction suivante, déterminer le rôle et l'utilisation des deux paramètres choix et cmd : typedef unsigned char BYTE; // définition du type BYTE (c'est un unsigned char) BYTE fabriquercommande2chauffage(byte choix, BYTE cmd) BYTE etat, commande; etat = lire(); // cette fonction peut être simulée pour des tests commande = etat & ~choix ; commande = commande (choix & cmd); return commande; etat choix ~choix X X X X X X X X 0x48 etat & ~choix cmd choix & cmd 0x08 commande (choix & cmd) choix : cmd : 10. Comparer les deux fonctions réalisées fabriquercommandechauffage et fabriquercommande2chauffage. LT LaSalle Avignon 5/5 BTS IRIS 2005 2008 tv