নিচে দেওয়া একটি উদাহরণ বিবেচনা করুন -
উদাহরণ
ইনপুট নিম্নরূপ:
একটি বাইনারি নম্বর লিখুন: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