Bonjour
Au fait j'ai un exercice qui me demande d'écrire un programme pour faire le complément à deux d'un nombre entier.
En premier je convertis ce nombre en binaire puis j'inverse tous les bits pour le complément à un. Mais pour ensuite afficher le complément à deux il faut que j'ajoute +1 au complément à un. D'où mon soucis , Quelqu'un pourrait bien m'aider SVP ?
Merci d'avance
Bonjour.
Entrer le nombre de bits utilisés : 4, 8, 16, 32, etc.
Entrer le nombre décimal N à convertir
Si N >= 0 : convertir N en binaire
Si N < 0 : convertir la valeur absolue en binaire, passer les 1 en 0 et les 0 en 1, ajouter 1, ne garder que les N bits de droite.
Rappels :
R1 : le bit le plus à gauche est le bit de signe (0 ~ positif, 1 ~ négatif)
R2 : sur n bits, on ne peut coder que des nombres décimaux compris entre 2^(n-1) - 1 et -(2^n)
petite correction...
Entrer le nombre de bits utilisés n : 4, 8, 16, 32, etc.
Entrer le nombre décimal N à convertir
Si N >= 0 : convertir N en binaire
Si N < 0 : convertir la valeur absolue en binaire, passer les 1 en 0 et les 0 en 1, ajouter 1, ne garder que les n bits de droite.
Rappels :
R1 : le bit le plus à gauche est le bit de signe (0 ~ positif, 1 ~ négatif)
R2 : sur n bits, on ne peut coder que des nombres décimaux compris entre 2^(n-1) - 1 et -(2^n)
L'analyse ne pose pas de problème le soucis c'est l'aglorithme ajouter 1, ne garder que les n bits de droite si n<0
lire R2 : sur n bits, on ne peut coder que des nombres décimaux compris entre 2^(n-1) - 1 et -(2^(n-1))
ainsi sur 8 bits :
127d : 01111111b
126d : 01111110b
...
2d : 00000010b
1d : 00000001b
0d : 00000000b
-1d : 11111111b
-2d : 11111110b
-3d : 11111101b
...
-126d : 10000010b
-127d : 10000001b
-128d : 10000000b
Bonjour,
on a appris à poser une addition à l'école primaire en base 10, c'est valable en n'importe quelle base et c'est toujours valable ici en base 2.
l'addition posée en binaire se fait de la même façon qu'en décimal, sauf que la base est 2 au lieu de 10, et pareil en n'importe quelle base b :
de la droite vers la gauche ajouter chiffre à chiffre et gérer les retenues si > b
tous les bits, pas seulement les 4 bits du nombre 13 en binaire "mathématique"
mais les 8 bits, ou 16 ou 64 etc de la longueur définie à priori du "mot".
la notion de "complément à deux" n'a aucun sens si la longueur du mot n'est pas fixée à priori et connue :
complément à deux "sur 8 bits" ou "sur 16 bits" etc ...
complément à deux tout court ne veut rien dire.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :