Inscription / Connexion Nouveau Sujet
Niveau maths spé
Partager :

Convertir nombre négatif en base (b)

Posté par
gtf-nike
27-10-13 à 15:43

Bonjour à tous,

Cette fois je désespère, j'ai regardé sur énormément de forum même suivi des PDF pour essayer de faire mon exercice qui m'a été donné.
Nous travaillons sur les systèmes de numération et plus précisément : la Représentation des entiers sur un Ordinateur.

Et voici l'exercice:
1) Convertir -121 en base 4, en donnant sa représentation par le complément sur 6 chiffres.
2) Convertir -3893 en base 16, en donnant sa représentation par le complément sur 8 chiffres.

1) ce que j'ai pensé faire, c'est premièrement oublié le moins (-) 121 et juste prendre 121 et le convertir en base 2 ( parce qu'en base deux on peut facilement le convertir en un nombre négatif en inversant les 1 par 0 et 0 par 1) et qu'après il suffirait de convertir de la base 2 en base 4 avec la méthode 2^2,
     Donc j'ai trouvé (01111001)base 2 = 121 en base 10. et j'ai fait l'inverse pour le trouver en négatif = 10000110 + 1 = (10000111) en base 2
     Finalement j'ai converti en base 4 ce qui m'a donné : = (2013) et pour le mettre sur 6 chiffres ça donne : (002013)
Est-ce que c'est comme ça que je dois m'y prendre ou pas du tout? et pour le numéro 2) je dois faire la même méthode?

Merci pour votre aide.

Posté par
Gammat
re : Convertir nombre négatif en base (b) 27-10-13 à 16:47

c'est une question de convention:
complément à 1 :
complément à 2 :

Habituellement ( en informatique notamment) les nombres négatifs sont représentés en "complément à 2",

exemple sur 4 digits binaires:
  7 -> 0111
-3 -> 1101  (complément à deux)

l'addition donne:  10100 , et le premier 1 est poubellisé ce qui donne bien 100 -> 4

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 16:48

bonjour
121 = 1*64 + 3*16 + 2*4 + 1 = (1321) en base 4 ...

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 16:57

Si j'ai bien compris l'article sur le complément à 2, ici, on va faire un complément à 4 et obtenir 332012 + 1 = 332013, non ?

Posté par
gtf-nike
re : Convertir nombre négatif en base (b) 27-10-13 à 17:05

Merci pour les infos,  par rapport à un complément à 2 on devrait reprendre pour le faire à 4 comme à dit lafol?

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 17:10

regarde l'exemple donné en base 10 : le complément est calculé par rapport à 999----9, donc en base 4 sur 6 chiffres, j'imagine que ça doit être calculé par rapport à 3333----3, et ensuite on ajoute 1

Posté par
gtf-nike
re : Convertir nombre négatif en base (b) 27-10-13 à 17:13

ouais ça marche, je pense aussi en fait, merci je vais essayer de faire le numéro 2 avec la même méthode.

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 17:14

le complément à FFF---F s'annonce rigolo à faire !

Posté par
gtf-nike
re : Convertir nombre négatif en base (b) 27-10-13 à 17:16

ahahahaha ouais ça va être horrible, je reviens vous dire dans 5 heures quand j'aurai fini ^^

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 17:20

n'exagère pas ! pense les "F" comme des "15" pour faire les soustractions, c'est tout !

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 17:24

Sinon, un outil bien pratique pour trouver des tas de réponses : http://www.wolframalpha.com/input/?i=convert+3893+to+base+16

Posté par
Gammat
re : Convertir nombre négatif en base (b) 27-10-13 à 17:30

les compléments à 1 et à 2 sont relatifs sont des représentations binaire des négatifs donc pour une base 2^n.
Le sujet est la Représentation des entiers sur un Ordinateur, donc exit les compléments à 4 ou à 10.

@lafol: je crois que tu voulais dire le complément à 2 de FFF---F
et bien, c'est tout  simplement 8000...001

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 17:38

d'après ce que j'avais lu j'avais compris que si on veut calculer simplement sur des nombres écrits en base 16 sur 8 chiffres (ce qu'on lui demande, non ?) pour les nombres négatifs, on en prend le complément à FFFFFFFF + 1

ici 3893 = F35 en base 16, donc représenté par FFFFF0CB, sauf erreur ?

je ne vois pas l'intérêt de convertir en base 16 si c'est pour finir en base 2 ?

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 17:40

gtf-nike, tu as bien un cours ? il n'y a pas d'exemples ?

Posté par
gtf-nike
re : Convertir nombre négatif en base (b) 27-10-13 à 17:50

Oui j'ai bien un exemple qu'on nous a donné en cours mais le prof n'explique que en base 2, Voilà l'exemple:

1.9.1 La représentation des entiers négatifs

Il est possible d'utiliser les compléments pour représenter des entiers négatifs. Par exemple,
−(324)5 peut être représente par le complément de (324)5 qui est (121)5. Cependant, cette
façon de faire n'est pas univoque. En effet, comment savoir si on se réfère au nombre (121)5 ou
−(324)5 ? Afin de préciser le cadre dans lequel on travaille on normalise l'écriture, c'est-`a-dire:
1. fixer le nombre de chiffres intervenant dans l´écriture du nombre,
2. fixer une convention (s'appliquant généralement sur le premier chiffre du nombre) indiquant s'il s'agit d'un nombre positif ou négatif.

Exemple 1.49.

Considérons une écriture sur 8 chiffres en base 6. Les entiers commençant par 0, 1, 2 sont positifs
et ceux commençant par 3, 4, 5 sont négatifs. Ainsi, 012344 représente un nombre positif, alors
que 554342 représente un nombre négatif.

1.10.1 Le code binaire direct

On représente les entiers de la façon suivante.
• Un nombre entier positif ou nul est représente par son expression binaire.
• Un nombre entier négatif est représente par le complément `a 2 de sa valeur absolue.
Autrement dit,
si le premier bit du nombre est 0, le nombre est positif ou nul,
si le premier bit du nombre est 1, le nombre est négatif.

Exemple 1.50.

Le nombre 114 est (1110010)2 en base 2, et sa représentation sur un octet est 01110010. La
représentation de −114 est donnée par le complément a 2 de 114 sur 8 bits, qui est 10001110.
Regardons maintenant quels sont les entiers pouvant être représentes selon la méthode ci-
dessus. Les entiers positifs ou nuls vont de (00000000)2 a (01111111)2 = 127. Les entiers négatifs
vont de (10000000)2 `a (11111111)2. Or (10000000)2 est le complément `a 2 de (10000000)2 = 128,
donc représente −128, et (11111111)2 est le complément a 2 de (00000001)2 = 1, donc représente
−1. Ainsi, les nombres représentables sur 1 octet selon le code binaire direct sont:
−128,−127, . . . ,−1, 0, 1, . . . , 127.

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 18:07

il y a quand même bien cet exemple en base 5 :

Citation :
Par exemple,
−(324)5 peut être représente par le complément de (324)5 qui est (121)5.

ou il a bien calculé 444 - 324 + 1 = 121

ça conforte ce que je t'ai dit

avec en plus le nombre de chiffres comme il l'explique ensuite

normal qu'il passe plus de temps sur le binaire, qui est la base de fonctionnement des calculateurs.

Posté par
Gammat
re : Convertir nombre négatif en base (b) 27-10-13 à 18:59

Citation :
je ne vois pas l'intérêt de convertir en base 16 si c'est pour finir en base 2 ?


Ben, en fait on ne "convertit" rien,(au sens des conversions d'unité grammes=>kilogramme), il s'agit de représentations différentes du même nombre, qui rendent plus ou moins pratiques les calculs.

Au risque de radoter, les compléments à 1 et à 2 s'appliquent à des représentations BINAIRES.

Dans les ordinateurs d'aujourd'hui, un nombre est toujours écrit en base 2, même si l'informaticien sur son papier, ou le débuggeur utilise une écriture base16, plus pratique.
(de la même façon que j'écris PQ sur ma liste de courses alors que ça ne figure pas sur l'emballage...).

A ma connaissance, un complément à autre chose que 1 ou 2, n'existe pas.

et on peut inventer toutes les conventions que l'on veut, pourvu qu'on y trouve un intérêt.
je peux dire par exemple que je représente un entier relatif N allant de -128 à 127 en donnant sont l'écriture binaire classique de N+128.  -10 -> 76;   0-> 80 ; 10->8A
Ça me donne une convention, bien peu pratique pour les calculs, mais pourquoi pas?

Posté par
gtf-nike
re : Convertir nombre négatif en base (b) 27-10-13 à 20:55

Lafol: Merci maintenant je vois d'où il sort le 121 par contre je vois pas ce qu'il veut dire quand il dit : "En effet, comment savoir si on se réfère au nombre (121)5 ou
−(324)5 ? " C'est quoi le rapport entre les deux, on ne peut pas les confondre?!

Gammat: Merci aussi, pour toi le résultat du numéro serai donc (332013) base 4??

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 27-10-13 à 21:58

Gammat, je pense qu'on veut les faire travailler sur la méthode de changement de base et de codage, son énoncé demande explicitement un résultat en base 4 pour la première question et 16 pour la seconde, et ne précise pas que le complément est à un ou à deux : parce qu'en base n, le complément est automatiquement à n

gtf-nike, si on n'a pas un premier chiffre pour indiquer le signe, on ne peut pas savoir si 121 en base 5 représente + 121 en base 5, ou le complément à 5 de 324, donc -324 en base 5
d'où l'idée d'un nombre de chiffres fixés, la valeur du premier donnant le signe
en principe avec 3 chiffres en base 5, on peut coder de 000_5 à 444_5 = 4\times 5^2 + 4\times 5 + 4 = 124_{10}, donc cent vingt cinq (=5^3, aussi) nombres positifs.
si on veut pouvoir coder des négatifs, on ne va que jusqu'à soixante deux, qui s'écrit 222_5, les compléments à 5 utilisant les combinaisons restantes pour coder les négatifs, de -62_{10} à -1

Posté par
Gammat
re : Convertir nombre négatif en base (b) 28-10-13 à 10:19


Avec un codage en complément à 2:

-121_{10}=1111111110000111_2=10000111_2=(10  00  01  11)_2=2013_4=333333333332013_4
"2013" :C'est pas un clin d'oeil du prof ça ?

-121_{10}=10000111_2=(110  000  111)_2=607_8=777777777607_8
-121_{10}=10000111_2=(1000  0111)_2=87_{16}=FFFFFFFFF87_{16}

C'est un informaticien qui vous parle....

Posté par
Gammat
re : Convertir nombre négatif en base (b) 28-10-13 à 10:24

Citation :
pour toi le résultat du numéro serai donc (332013) base 4?

oui

Posté par
lafol Moderateur
re : Convertir nombre négatif en base (b) 28-10-13 à 21:34

en base 16, c'est -3893 qu'on lui demande



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1741 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !