Problème sur les nombres binaires signés

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 14 Jan 2011, 23:12

Problème sur les nombres binaires signés

par Sasukedu77 » 31 Oct 2012, 13:25

Bonjour,

Je n'arrive pas à comprendre le corrigé d'un exercice :

Soit le nombre binaire 10111010012, que l’on considère non signé dans un premier temps :

1) Donnez sa représentation décimale.
Donc ça fait 745 (j'ai compris)

On le considère maintenant signé sur 10 bits.

2) Donnez sa représentation décimale.

10 1110 10012 = -279 (je ne sais pas comment il a fait pour trouver ça...)
Pourtant j'ai appliqué la méthode : vu que c'est un nombre négatif (avec le 1 en bit de signe), j'ai converti en le nombre binaire en complément à 2 et je l'ai converti en décimale mais je ne trouve pas ça...

3)Donnez sa représentation binaire sur 15 bits signés.

Réponse : 111 1110 1110 1001 (Comment sait on si on doit mettre un "1" ou des "0" pour arriver jusqu'a 15 bits ?)


Merci pour votre aide !



homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 10:20

par homeya » 31 Oct 2012, 13:43

Bonjour,

Les calculs sur les nombres binaires semblent être à la mode ces temps-ci !
Pour la question 2, 10 1110 10012 s’écrit en complément à deux: 01 0001 01112 soit en décimal 256 + 16 + 4 +2 +1 = 279.
Pour la question 3, de manière générale, il faut étendre le bit de poids fort (celui le plus à gauche) sur le nombre de bits demandés. Ainsi 10 1110 10012 = 111 1110 1110 10012. Avec cette méthode, un nombre négatif reste négatif et un positif positif et c'est bien ainsi !

Cordialement.

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 14 Jan 2011, 23:12

par Sasukedu77 » 31 Oct 2012, 13:55

homeya a écrit:Bonjour,

Les calculs sur les nombres binaires semblent être à la mode ces temps-ci !
Pour la question 2, 10 1110 10012 s’écrit en complément à deux: 01 0001 01112 soit en décimal 256 + 16 + 4 +2 +1 = 279.
Pour la question 3, de manière générale, il faut étendre le bit de poids fort (celui le plus à gauche) sur le nombre de bits demandés. Ainsi 10 1110 10012 = 111 1110 1110 10012. Avec cette méthode, un nombre négatif reste négatif et un positif positif et c'est bien ainsi !

Cordialement.



Ok c'est bon j'ai compris. Pour la première question j'avais fait une erreur de calcul...

Sinon est ce que tu pourrais m'expliquer ceci :

Soit le nombre en représentation décimale suivant : 224.
Combien faut-il de bits au minimum pour le représenter en binaire non signé ?

On sait que la valeur max codés sur n bits est de 2^n -1. Mais après je ne sais pas ...

Merci

maths0
Membre Irrationnel
Messages: 1251
Enregistré le: 12 Nov 2011, 13:37

par maths0 » 31 Oct 2012, 15:51

Sasukedu77 a écrit:Ok c'est bon j'ai compris. Pour la première question j'avais fait une erreur de calcul...

Sinon est ce que tu pourrais m'expliquer ceci :

Soit le nombre en représentation décimale suivant : 224.
Combien faut-il de bits au minimum pour le représenter en binaire non signé ?

On sait que la valeur max codés sur n bits est de 2^n -1. Mais après je ne sais pas ...

Merci

1024 512 256 128 64 32 16 8 4 2 1
--1023 511 255 127 63 31 15 8 3 1 //Je peux aller jusqu'à 255 avec 8 bits.
-------------1---1---1--1-1-1-1-1
Donc il me faut 1 octet pour coder 224 en binaire (1110 0000).

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 14 Jan 2011, 23:12

par Sasukedu77 » 01 Nov 2012, 11:20

Merci de ta réponse. Cependant cet exemple est assez simple mais admettons qu'on a 2^24 au lieu de 224 ? Comment fais tu ?

homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 10:20

par homeya » 01 Nov 2012, 12:23

Pour coder 2^24 en binaire il faut ... 25 bits (facile !). En pratique pour coder le nombre x (décimal), il faut: E(ln(base2)(x))+1 = E(ln(x)/ln(2))+1 bits.
Ainsi pour x = 224, on obtient 8 bits, pour 2^24 25 bits, etc.

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 14 Jan 2011, 23:12

par Sasukedu77 » 01 Nov 2012, 13:03

Question peut être bête mais c'est quoi "E" ?

homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 10:20

par homeya » 01 Nov 2012, 13:08

C'est vrai que je ne l'ai pas précisé: c'est la fonction partie entière.

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 14 Jan 2011, 23:12

par Sasukedu77 » 01 Nov 2012, 13:29

Et cette formule E(ln(x)/ln(2))+1 bits, c'est valable tout le temps ?
Même en binaire signé ?

homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 10:20

par homeya » 01 Nov 2012, 13:35

La formule n'est valable que pour les nombres non signés. Pour les nombres binaires signés, on a besoin d'un bit supplémentaire (qui servira à indiquer le signe).

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 14 Jan 2011, 23:12

par Sasukedu77 » 01 Nov 2012, 15:05

Ok pas de problème mais par contre avec cet exemple : -2^24 il faut donc au minimum 25 bits pour représenter -224 en binaire signé mais pourquoi ?

homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 10:20

par homeya » 01 Nov 2012, 17:12

Il faut 25 bits pour représenter 2^ 24 et 26 bits pour -2^24 car il faut rajouter le bit de signe. Par analogie, il faut 5 caractères pour écrire 64738 et 6 caractères pour -64738 puisqu'il faut rajouter le signe -. Pour représenter 224, il fallait 8 bits et donc pour -224, il en faudra 9. Est-ce plus clair ?

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 32 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite