নিচে দেওয়া একটি উদাহরণ বিবেচনা করুন -
উদাহরণ
ইনপুট নিম্নরূপ:
একটি বাইনারি নম্বর লিখুন:10010001
আউটপুট নিম্নরূপ:
10010001 এর 1 এর পরিপূরক হল 01101110
10010001 এর 2 এর পরিপূরক হল 01101111
অ্যালগরিদম
একটি প্রদত্ত বাইনারি সংখ্যার জন্য 2’c পরিপূরক খুঁজে পেতে একটি অ্যালগরিদম পড়ুন৷
৷ধাপ 1 - শুরু করুন।
ধাপ 2 - রানটাইমে বাইনারি নম্বর পড়ুন।
ধাপ 3 - strdp এ বাইনারি নম্বর কপি করুন।
ধাপ 4 − len:=strlen(str)
ধাপ 5 − i =0 থেকে len-1 do
এর জন্যধাপ 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