नीचे दिए गए उदाहरण पर विचार करें:
उदाहरण
इनपुट निम्नानुसार है:
Enter a binary number: 10010001
आउटपुट निम्नानुसार है:
1's complement of 10010001 is 01101110 2's complement of 10010001 is 01101111
एल्गोरिथम
दिए गए बाइनरी नंबर के लिए 2's कॉम्प्लीमेंट खोजने के लिए एक एल्गोरिथम देखें।
चरण 1 - शुरू।
चरण 2 - रनटाइम पर बाइनरी नंबर पढ़ें।
चरण 3 - बाइनरी नंबर को strdp में कॉपी करें।
चरण 4 - लंबाई: = strlen(str)
चरण 5 - i = 0 से लंबाई-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 := लंबाई-1 से 0 तक करें
- चरण 7.1 - यदि मास्क == 1 तो
- चरण 7.1.1 - यदि str[i] == '1' तो str[i] := '0', मास्क := 1
- चरण 7.1.2 - अन्यथा str[i] := '1', मास्क := 0
चरण 8 - 2's कॉम्प्लीमेंट प्रिंट करें।
चरण 9 - रुकें।
प्रोग्राम
निम्नलिखित C प्रोग्राम दिए गए बाइनरी नंबर के लिए 2's कॉम्प्लीमेंट खोजता है:
#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