Thème: Représentation des données : types et valeurs de base

B1: Ecriture d'un entier en binaire

I/ La Base 10 : le système décimal

La base 1O sera notre point de départ pour mettre en place les autres bases.
On dispose de 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Exemple 1 : Le nombre 386 vous le comprenez aisément, le 3 est le chiffre des centaines, 8 celui des dizaines et 6 celui des unités.

Pour comprendre la suite du cours il faut écrire 386 autrement : 386= 3×102 + 8×101 + 6×100

En informatique nous utilisons plusieurs bases, mais nous nous limiterons a la base 2 pour écrire des entiers naturels.

II/ La Base 2 : le binaire

A/ Présentation

Le binaire est le système de numération à la source de la conception d'un ordinateur. Les composants d'un ordinateur fonctionnent grâce au courant électrique. L'information est donc à deux états : présence de courant 1 et absence de courant 0.
En binaire les rangs sont appelés bit, qui est la contraction de "binary digit" ("chiffre binaire"). Par exemple, le nombre 10011 ocupe 5 bits. Là où tout se complique, c'est que chaque rang en binaire ne peut avoir que deux valeurs (binaire = base 2) différentes : 0 ou 1.
Pour la base 10, chaque rang représente une puissance de 10, pour la base 2, chaque rang occupe une puissance de 2.

exercice2: Observer et compléter le tableau suivant qui va vous faire compter en binaire jusqu'à 10 :

tableau

Voici une video pour vous aider

B/ Conversion décimale vers binaire 12/11

La video ci-dessous vous explique comment passer de la base 10 vers la base 2

Vous avez maintenant compris la signification d'une écriture en binaire. Reste à mettre en place un algorithme qu nous permettent de faire la conversion d'un nombre écrit en base 10 en base 2. La division euclidienne, celle que vous avez apprise en CM1, va nous permettre d'établir une méthode de conversion de la base 10 vers la base 2. Cette méthode nous permettra d'écrire un algorithme de conversion aisément.

Propriété
Procédure de conversion base 10 en base 2
Voici la procédure :

Exemple

L'écriture binaire de 586 est donc 1001001010

C/ Conversion binaire vers décimale 16/11

on ajoute les valeurs des bits multiplié par 2 à la puissance la position du bit.

D/ Lien entre nombre de bits et amplitude des décimaux à coder

III/ IP(v4)

IV/ Conversion base 2 à base 10 et réciproquement en Python 30/11

L'objectif de ce TP est la réalisation de fonctions de conversion de binaire en décimal et réciproquement

B2 - Les entiers naturels en binaire

TP
TP

Ci-joint la correction video de la partie decimal vers binaire dans la partie 4.

04/12 eval B1: conversion binaire/decimal, decimal/binaire sur feuille et sur les algorithmes de conversion

B2: Representation d'un entier relatif

I/ Une première représentation intuitive

Une première idée serait de coder le signe + par un 0 et le signe - par un 1. Ainsi 6 10 = 110 2 se coderait alors en 0110 2. Mais −6 10 se coderait alors en 1110 2

Par conséquent nous allons devoir pous fixer un nombre de bits, n, un espace mémoire. On conserve alors le premier pour le signe et les n −1 autres pour le codage de la valeur absolue du nombre.

Ainsi sur 8 bits −6 10 se code en 1|0000110

Un premier problème avec cette représentation est que le chiffre 0 10 a deux représentations. En effet sur 3 bits: 0 10 = 0|00 2 et 0 10 = 1|00 2

Un autre problème se pose avec cette méthode sur l'addition de deux nombres en binaires.

II/ Le complément à deux.

A/ Cas des entiers naturels

La représentation d'un nombre entier naturel en binaire se fait de la même manière que dans le paragraphe précédent.

Si on dispose de n bits, le premier sera 0 pour indiquer que l'entier est positif. Et les n − 1 autres seront le codage en binaire de l'entier.

Cela signifie aussi que si l'on dispose de n bits, nous ne pourrons pas dépasser un entier plus grand que 2 n−1 − 1 . Puisque nous ne disposons que de n − 1 bits.

Exemple
Si l'on dispose de 5 bits. On a 12 10 = 01100 2.
Si l'on dispose que de 4 bits. On ne peut tout simplement coder 12 en binaire si nous considérons les entiers relatifs.

Rappelez vous que sur n bits un entier naturel ne pouvait pas dépasser 2 n − 1. Quand nous codons des entiers relatifs, nous ne pourrons pas dépasser 2 n − 1 − 1 sur n bits.

Cas des entiers négatifs.

Pour représenter un entier négatif nous allons utiliser le "complément à deux": Voila la procédure :

  1. On code la valeur absolue du nombre en binaire
  2. On remplace tous les 0 par des 1 et les 1 par des 0.
  3. On ajoute 1

Exemple
exemple1

Il faut bien distinguer le nombre binaire de sa représentation en binaire.

12 10 = 1100 2 mais en représentation en complément à 2 sur 4 bits 1100 2 = −4

Propriété Avec n bits nous pouvons coder uniquement des entiers compris entre −(2 n − 1− 1) et 2 n − 1 −1

C'est le cas puisque le premier bit est réservé au signe de l'entier.