Considérez l'exemple ci-dessous -
L'entrée est la suivante :
Nombre binaire d'entrée : 10010001
La sortie est la suivante :
Complément à 1 de 10010001 est 0110111 0
2 vs 10010001 Le complément de est 01101111
Référez-vous à un algorithme pour trouver le complément 2'c d'un nombre binaire donné.
Étape 1 – Commencer.
Étape 2 - Lisez le nombre binaire au moment de l'exécution.
Étape 3 - Copiez le nombre binaire dans strdp.
Étape 4 - len: = strlen(str)
Étape 5 - Pour i = 0 à len-1, exécutez
Étape 5.1 - Si str[i] == '1' alors
Étape 5.1.1 - str [i] == '0'
Étape 5.2 - Sinon
Étape 5.2.1 - str[i] == '1'
Étape 5.3 - i: = i+1
Étape 5.3 - i: = i +1
p>
Étape 6 - Masque : = 1
Étape 7 - Pour i : = len-1 à 0 faire
Étape 7.1 - Si masque == 1 alors p>
Étape 7.1 .1 − Si str[ i] == '1' puis
Étape 7.1.1.1 − str[i]: = '0'
Étape 7.1.1.2 − masque : = 1
Étape 7.1.2 − else
Étape 7.1.2.1 - str[i]: = '1'
Étape 7.1.2.2 - Masque : = 0
Étape 7.1.3 - Fin de if
Étape 7.2 - Fin de if
Étape 8 - Imprimer le complément de 2.
Étape 9 – Arrêtez.
Ce qui suit est un programme C pour trouver le complément 2'c d'un nombre binaire donné -
Démonstration en direct
#include <string.h> #include<stdio.h> main(){ char str[32],strdp[32]; int mask,i; printf("Enter a binary number:"); scanf("%s",str); strcpy(strdp,str); for(i=0;i<strlen(str);i++) /* computing 1's complement */{ if(str[i]=='1') str[i]='0'; else str[i]='1'; } printf("1\'s complement of %s is %s</p><p>",strdp,str); mask=1; for(i=strlen(str)-1;i>=0;i--){ if(mask==1){ if(str[i]=='1'){ str[i]='0'; mask=1; } else{ str[i]='1'; mask=0; } } } printf("2\'s complement of %s is %s",strdp,str); }
Lorsque le programme ci-dessus est exécuté, les résultats suivants sont produits -
Enter a binary number:11001110 1's complement of 11001110 is 00110001 2's complement of 11001110 is 00110010
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!