नीचे दिए गए एक उदाहरण पर विचार करें -
उदाहरण
इनपुट इस प्रकार है:
बाइनरी नंबर दर्ज करें:10010001
आउटपुट इस प्रकार है:
10010001 का 1 का पूरक 01101110 है
2 का 10010001 का पूरक 01101111 है
एल्गोरिदम
किसी दिए गए बाइनरी नंबर के लिए 2'c कंप्लीमेंट खोजने के लिए एक एल्गोरिदम देखें।
चरण 1 - प्रारंभ करें।
चरण 2 - रनटाइम पर बाइनरी नंबर पढ़ें।
चरण 3 - बाइनरी नंबर को strdp में कॉपी करें।
चरण 4 - लेन:=strlen(str)
चरण 5 − i =0 से len-1 के लिए करें
चरण 5.1 - अगर str[i] =='1' तो
चरण 5.1.1 - str[i] =='0'
चरण 5.2 - अन्यथा
चरण 5.2.1 - str[i] =='1'
चरण 5.3 - i:=i+1
चरण 6 - मुखौटा:=1
चरण 7 − i के लिए:=len-1 से 0 do
चरण 7.1 - यदि मुखौटा ==1 तो
चरण 7.1.1 - अगर str[i] =='1' तो
चरण 7.1.1.1 - str[i]:='0'
चरण 7.1.1.2 - मुखौटा:=1
चरण 7.1.2 - अन्य
चरण 7.1.2.1 - str[i]:='1'
चरण 7.1.2.2 - मुखौटा:=0
चरण 7.1.3 - समाप्त करें यदि
चरण 7.2 - समाप्त करें यदि
चरण 8 - 2 के पूरक को प्रिंट करें।
चरण 9 - रुकें।
कार्यक्रम
किसी दिए गए बाइनरी नंबर के लिए 2’c कंप्लीमेंट खोजने के लिए C प्रोग्राम निम्नलिखित है:-
#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\n",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); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter a binary number:11001110 1's complement of 11001110 is 00110001 2's complement of 11001110 is 00110010