नीचे दिए गए एक उदाहरण पर विचार करें -
उदाहरण
इनपुट इस प्रकार है:
बाइनरी नंबर दर्ज करें: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