Heim  >  Artikel  >  Backend-Entwicklung  >  Finden Sie das 2er-Komplement einer gegebenen Binärzahl mit C

Finden Sie das 2er-Komplement einer gegebenen Binärzahl mit C

PHPz
PHPznach vorne
2023-09-05 15:21:061173Durchsuche

Finden Sie das 2er-Komplement einer gegebenen Binärzahl mit C

Betrachten Sie das unten angegebene Beispiel -

Beispiel

Die Eingabe ist wie folgt:

Eingabe der Binärzahl: 10010001

Die Ausgabe ist wie folgt:

1er-Komplement von 10010001 ist 0110111 0

2 vs 10010001 Das Komplement von ist 01101111

Algorithmus

Beziehen Sie sich auf einen Algorithmus, um das 2'c-Komplement einer gegebenen Binärzahl zu finden.

Schritt 1 – Los geht’s.

Schritt 2 – Lesen Sie die Binärzahl zur Laufzeit.

Schritt 3 – Binärzahl nach strdp kopieren.

Schritt 4 – len: = strlen(str)

Schritt 5 – Für i = 0 bis len-1 ausführen

Schritt 5.1 – Wenn str[i] == '1' dann

Schritt 5.1.1 – str [i] == '0'

Schritt 5.2 - Sonst

Schritt 5.2.1 - str[i] == '1'

Schritt 5.3 - i: = i+1

Schritt 5.3 - i: = i +1

p>

Schritt 6 – Maske: = 1

Schritt 7 – Für i: = len-1 bis 0 tun

Schritt 7.1 – Wenn Maske == 1, dann p>

Schritt 7.1 .1 − Wenn str[ i] == '1' then

              Schritt 7.1.1.1 − str[i]: = '0'

                Schritt 7.1.1.2 − mask: = 1

        Schritt 7.1.2 − else

Schritt 7.1.2.1 − str[i]: = '1'

Schritt 7.1.2.2 – Maske: = 0

Schritt 7.1.3 – End if

Schritt 7.2 – End if

Schritt 8 – 2er-Komplement drucken.

Schritt 9 – Stopp.

Programm

Das Folgende ist ein C-Programm, um das 2'c-Komplement einer gegebenen Binärzahl zu finden -

Live-Demonstration

#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&#39;s complement */{
      if(str[i]==&#39;1&#39;)
         str[i]=&#39;0&#39;;
      else
         str[i]=&#39;1&#39;;
   }
   printf("1\&#39;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]==&#39;1&#39;){
            str[i]=&#39;0&#39;;
            mask=1;
         }
         else{
            str[i]=&#39;1&#39;;
            mask=0;
         }
      }
   }
   printf("2\&#39;s complement of %s is %s",strdp,str);
}

Ausgabe

Wenn das obige Programm ausgeführt wird, werden die folgenden Ergebnisse erzeugt -

Enter a binary number:11001110
1&#39;s complement of 11001110 is 00110001
2&#39;s complement of 11001110 is 00110010

Das obige ist der detaillierte Inhalt vonFinden Sie das 2er-Komplement einer gegebenen Binärzahl mit C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen