Numération : arithmétique binaire

Documents pareils
Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Conversion d un entier. Méthode par soustraction

Logiciel de Base. I. Représentation des nombres

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Représentation d un entier en base b

V- Manipulations de nombres en binaire

Les opérations binaires

Chapitre 10 Arithmétique réelle

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

Système binaire. Algèbre booléenne

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

Chapitre 1 I:\ Soyez courageux!

Le codage informatique

Informatique Générale

Codage d information. Codage d information : -Définition-

IFT2880 Organisation des ordinateurs et systèmes

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Rappels Entrées -Sorties

Initiation au binaire

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)

La mémoire. Un ordinateur. L'octet. Le bit

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

I- Définitions des signaux.


Cours d Informatique

Architecture matérielle des systèmes informatiques

Représentation d un nombre en machine, erreurs d arrondis

Feuille TD n 1 Exercices d algorithmique éléments de correction

Représentation des Nombres

Compter à Babylone. L écriture des nombres

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

Algorithmique et programmation : les bases (VBA) Corrigé

Licence Sciences et Technologies Examen janvier 2010

Algorithme. Table des matières

Une version javascript sera disponible directement dans le cours prochainement.

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

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

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Glossaire des nombres

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

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

Algèbre binaire et Circuits logiques ( )

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Continuité et dérivabilité d une fonction

Algorithmique et Programmation, IMA

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Introduction à l algorithmique et à la programmation (Info 2)

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

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

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Manuel de référence du langage Exemples Les aventures de Docteur R.

Chapitre 2. Eléments pour comprendre un énoncé

I.1- DÉFINITIONS ET NOTIONS DE BASE

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

CORRECTION EXERCICES ALGORITHME 1

Organisation des Ordinateurs

IV- Comment fonctionne un ordinateur?

alg - Classes, instances, objets [oo] Exercices résolus

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

L exclusion mutuelle distribuée

GPA770 Microélectronique appliquée Exercices série A

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

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

Cours 1 : Qu est-ce que la programmation?

Architecture de l ordinateur

Architecture des ordinateurs Introduction à l informatique

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Solutions du chapitre 4

Organigramme / Algorigramme Dossier élève 1 SI

Chap III : Les tableaux

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Rapport BOP 1.2 «Paiements transfrontaliers exécutés pour compte de la clientèle résidente»

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Cours d algorithmique pour la classe de 2nde

MegaStore Manager ... Simulation de gestion d un hypermarché. Manuel du Participant

Rappels sur les suites - Algorithme

Les structures de données. Rajae El Ouazzani

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

TD 1 - Transmission en bande de passe

TRIGONOMETRIE Algorithme : mesure principale

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

1 Introduction au codage

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

TD3: tableaux avancées, première classe et chaînes

Quelques tests de primalité

Vers l'ordinateur quantique

Programmation avec Xcas ou Python

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

Transcription:

Numération : arithmétique binaire 1 Bases numériques 1.1 Définitions Les codes sont utilisé en informatique. Ainsi, la reconnaissance d un code peut prendre différents aspect, comme le code barre d un article de supermarché, le code INSEE d un individu, le code ASCII... Plus particulièrement, les nombres sont codés dans un système informatique. En effet, un signal électronique, physique peut être codé comme reçu ou non, soit la symbolisation par deux chiffres 0 ou 1. 1.1.1 Bit Le mot fut utilisé pour la première fois par Claude Shannon dans un article publié en 1948. On attribue cependant son origine à John Wilder Tukey, mathématicien américain. Bit est une contraction des mots binary digit, ou également binary unit. Un bit peut prendre deux valeurs possibles, 0 ou 1. 1.1.2 Mot Un mot est un ensemble de bits agencés de sorte à représenter un objet dans un code. Le mot 0110000 représente le caractère 0 (zéro) en code Ascii, ou le nombre 48 dans la représentation dite décimale des entiers. 1.2 Système de numération 1.2.1 les chiffres Pour obtenir un système de numération dans une base B, il faut B symboles, ces symboles seront appelés chiffres. en base 2 : {0; 1} en base 10 : {0; 1; 2; 3; 4; 5; 6; 7; 8; 9} en base 16 : {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; A; B; C; D; E; F } 1.2.2 Écriture d un nombre décimal Une nombre N peut s écrire dans la base B de la manière suivante : N = ±[a n a n 1...a 2 a 1 a 0, a 1 a 2...a m ] (B) n + 1 chiffres forment la partie entière du nombre et m chiffres la partie fractionnaire du nombre. Ainsi N = ±a n B n + a n 1 B n 1 +... + a 2 B 2 + a 1 B + a 0 + a 1 B 1 + a 2 B 2 +... + a m B m Exemples : N = [158, 29] (10) ; on a N = 1 10 2 + 5 10 + 8 + 2 10 1 + 9 10 2 N = [1001, 101] (2) ; on a (en base 10) N = 1 2 3 + 1 + 1 2 1 + 1 2 3 = 9, 625 N = [15, 45] (16) ; on a (en base 10) N = 1 16 1 + 5 + 4 16 1 + 5 16 2 = 21, 26953125 N = [A5F ] (16) ; on a (en base 10) N = A 16 2 + 5 16 + F = 2655. S.Mirbel page 1 / 7

2 Changements de base Soit un nombre N à convertir d une base B à une base B (généralement la base B est la base 10). N = ±[a n a n 1...a 2 a 1 a 0, a 1 a 2...a m ] (B) Deux algorithmes permettent d effectuer le changement de base : On note E la partie entière de N : E = [a n a n 1...a 2 a 1 a 0 ] (B) et F la partie fractionnaire de N : F = [a 1 a 2...a m ] (B). 1. Algorithme de changement de base de la partie entière de N, E : Algorithm 1 changer E de base Entrées: E (soit a i, i 0, n, n N) bases B B. Sorties: E (soit r i, i 0, n, n N) q i E tantque q i > 0 faire r i+1 = reste(q i /B ) q i+1 = ent(q i /B ) Exercice-exemple : (a) convertir [6523] 10 en base 2. (b) convertir [523] 10 en base 16. 2. Algorithme de changement de base de la partie fractionnaire de N, F : Algorithm 2 changer F de base Entrées: F (soit a i, i 1, m, m N) bases B B, on écrira F = 0, a 1 a 2...a m. Sorties: F (soit r i, i 0, m, m N) q i F tantque q i > 0 faire r i+1 = ent(q i B ) q i+1 = frac(q i B ) Exercice-exemple : (a) convertir [0, 6975] 10 en base 2. (b) convertir [0, 6975] 10 en base 16. Remarque : Pour passer de la base 2 à la base 2 k en particulier à la base 16 = 2 4 on utilisera le principe de l exemple suivant : [10001101101] 2 = [100 0110 1101] 2 = [4 5 D] 16 = [45D] 16 S.Mirbel page 2 / 7

3 Opérations Pour la suite, nous nous placerons en base 2 ou 16. 3.1 Addition Soit N et N deux nombres entiers exprimés dans la base B, en n chiffres (exemple, en 4 bits, N = 0010 et N = 1011). L algorithme suivant permet de faire l opération : Algorithm 3 somme de deux nombres entiers N et N en base B Entrées: N (soit a i, i 1, n, n N) N (soit a i, i 1, n, n N). Sorties: S (soit s i, i 1, n, n N) s i = 0 tantque i n faire s i = a i + a i + s i si s i B alors s i = s i B s i+1 = 1 finsi 1. Reprenons l exemple en 4 bits avec N = 0010 et N = 1011 : retenue 1 Nombre N 0 0 1 0 Nombre N 1 0 1 1 Nombre S 1 1 0 1 2. Soit N = [25B] 16 et N = [DEF ] 16 : retenue 1 1 Nombre N 2 5 B Nombre N D E F Somme S 1 0 4 A 3. De la même manière, faire les sommes suivantes : [101] 2 + [100111] 2 puis [A9AE] 16 + [BBC87] 16 S.Mirbel page 3 / 7

3.2 Soustraction 3.2.1 Cas général Soit N et N deux nombres entiers exprimés dans la base B, en n chiffres (exemple, en 4 bits, N = 1110 et N = 1011). L algorithme suivant permet de faire l opération : Algorithm 4 différence de deux nombres entiers N et N en base B Entrées: N (soit a i, i 1, n, n N) N (soit a i, i 1, n, n N). Sorties: S (soit s i, i 1, n, n N) s i = 0 tantque i n faire si a i a i + s i alors s i = a i (a i + s i) sinon s i = a i + B (a i + s i) s i+1 = 1 finsi 1. Reprenons l exemple en 4 bits avec N = 1110 et N = 1011 : 2. Soit N = [D24] 16 et N = [8F E] 16 : Nombre N 1 1 1 (+B) 0 (+B) Nombre N 1 0 (+1) 1(+1) 1 Nombre S 0 0 1 1 Nombre N D 2 (+B) 4 (+B) Nombre N 8 (+1) F (+1) E Somme S 4 2 6 3. De la même manière, faire les différences suivantes : [10111] 2 [0111] 2 puis [EA9AE] 16 [BBC87] 16 S.Mirbel page 4 / 7

3.2.2 Application en informatique Dans cette sous-partie, les nombres seront exprimés en 16 bits, avec les chiffres 0 ou des 1. Pour coder les nombres négatifs, le premier bit à gauche est le signe du nombre 1 s il est négatif, et le reste est le nombre entier : 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 est le nombre [23] 10. Une première fausse idée serait de considérer le nombre suivant : 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 comme étant [ 23] 10. En effet avec ce raisonnement, la somme des deux nombres [23] 10 + [ 23] 10 ferait : 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 soit [ 46] 10. (nous préférerions trouver 0!) D autre part, avec cette méthode, on aurait 1000000000000000 = 0!) Une seconde idée est de prendre le complément à 2. Plutôt d écrire [ 1] 10 = 1000000000000001 on choisit d écrire [ 1] 10 = 1111111111111111. Ainsi [ 2 15 + 1] 10 = 1000000000000001 ; [ 2 15 + 2] 10 = 1000000000000010 ; [ 2 15 + 3] 10 = 1000000000000011 ; [ 2 15 + 4] 10 = 1000000000000100 ; [ 2 15 + 5] 10 = 1000000000000101 ; [ 2 15 + 6] 10 = 1000000000000111... (On utilise la somme des termes d une suite géométrique de raison 2.) Pour trouver l opposé d un nombre entier on utilise le complément à 2 : Algorithm 5 Opposé d un nombre N en binaire Entrées: N (soit a i, i 1, n, n N). Sorties: N (= N) (soit a i, i 1, n, n N). tantque i n faire si a i = 0 alors a i = 1 sinon a i = 0 finsi N N + 1 En 16 bits, l opposé de 23 est : 23 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 inversion 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 (+1) 1-23 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 Ainsi la somme de 23+(-23) donne : 23 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1-23 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 somme 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S.Mirbel page 5 / 7

il reste une retenue (à gauche) qui n est pas prise en puisque le nombre de bits est limité à 16. Le nombre obtenu est bien 0. Trouver l opposé du nombre [125] 10 en base 2 dans un système de 8 bits. Avec cette méthode se pose alors des problèmes de dépassement (quand une somme dépasse la limitation des bits imposés par la processeur). 3.3 Multiplication Le principe de distributivité existe dans une base B. Ainsi pour faire un produit de deux nombres N et N dans cette base, il suffit de poser l opération (faire l algorithme) comme vous l avez vu dans les classes de cours moyen avec la base 10. 1. Faire le produit de 7 par 5 en base 2 : 2. Faire le produit de 36 par 12 en base 2 : 3. Faire le produit de 45 par 19 en base 2. 1 1 1 7 1 0 1 5 1 1 1 0 0 0. 1 1 1.. = 1 0 0 0 1 1 35 1 0 0 1 0 0 3 6 1 1 0 0 1 2 1 0 0 1 7 2 1 0 0 1. 3 6. 1 1 0 1 1 0 0 0 0 4 3 2 Remarque : De la même manière, on peut poser les multiplications en base 16. 3.4 Division Comme pour la multiplication on applique nos connaissance de cours moyen (l algorithme) de la division en base 10 appliqué à la base 10. 1. Faire la division de 36 par 6 en base 2 : 1 0 0 0 1 1 1 0 1-1 0 1 1 1 1 0 0 1 1 1-1 0 1 0 1 0 1-1 0 1 0 0 0 On a alors l égalité d Euclide : 100011 = 101 111 + 0, le reste de la division est 0. 2. Faire la division de 25 par 12 en base 2 : 1 1 0 0 1 1 1 0 0-1 1 0 0 1 0 0 0 0 0 1-0 0 0 1 S.Mirbel page 6 / 7

On a alors l égalité d Euclide : 11001 = 1100 10 + 1, 1 est le reste de la division. 3. Faire la division de 72 par 5 en base 2. Vous donnerez le reste de la division, puis le résultat décimal de cette division. 4 Arrondi 4.1 Définition L arrondi d un nombre x est une valeur approchée de la valeur x, à une précision donnée n. Cet arrondi peut être approché par excès (par une valeur supérieure) ou par défaut (par une valeur inférieure). en base 10, l arrondi par excès de 2,76 à 0,1 (soit 10 1 ) est 2,8 et l arrondi par défaut à 0,1 est 2,7. en base 10, l arrondi par excès de 103 à 10 (soit 10 1 ) est 110 et l arrondi par défaut à 10 est 100. en base 2, l arrondi par excès de 1001,01 à 0,1 (soit 2 1 ) est 1001,1 et l arrondi par défaut à 0,1 est 1001,0. En informatique, les changements de base peuvent permettre les arrondis des nombres en base 10. En exercice, nous verrons que la capacité de mémoire physique d une machine peut amener à des erreurs de calculs que nous essaierons de comprendre. S.Mirbel page 7 / 7