Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्राम दी गई संख्या के लिए दो के पूरक खोजने के लिए

किसी दिए गए बाइनरी नंबर के लिए दो के पूरक की गणना दो तरीकों से की जा सकती है, जो इस प्रकार हैं -

  • विधि 1 − दिए गए बाइनरी नंबर को एक के पूरक में बदलें और फिर, 1 जोड़ें।

  • विधि 2 - कम से कम महत्वपूर्ण बिट (एलएसबी) से पहले बिट सेट के बाद अनुगामी शून्य, जिसमें एक अपरिवर्तित रहता है और शेष सभी को पूरक होना चाहिए।

दो के पूरक खोजने . का तर्क किसी दिए गए बाइनरी नंबर के लिए इस प्रकार है -

for(i = SIZE - 1; i >= 0; i--){
   if(one[i] == '1' && carry == 1){
      two[i] = '0';
   }
   else if(one[i] == '0' && carry == 1){
      two[i] = '1';
      carry = 0;
   } else {
      two[i] = one[i];
   }
}
two[SIZE] = '\0';
printf("Two's complement of binary number %s is %s\n",num, two);

किसी के पूरक को खोजने . का तर्क दिए गए बाइनरी नंबर से है -

for(i = 0; i < SIZE; i++){
   if(num[i] == '0'){
      one[i] = '1';
   }
   else if(num[i] == '1'){
      one[i] = '0';
   }
}
one[SIZE] = '\0';
printf("Ones' complement of binary number %s is %s\n",num, one);

उदाहरण

दी गई संख्या के लिए दो के पूरक खोजने के लिए सी कार्यक्रम निम्नलिखित है -

#include<stdio.h>
#include<stdlib.h>
#define SIZE 8
int main(){
   int i, carry = 1;
   char num[SIZE + 1], one[SIZE + 1], two[SIZE + 1];
   printf("Enter the binary number\n");
   gets(num);
   for(i = 0; i < SIZE; i++){
      if(num[i] == '0'){
         one[i] = '1';
      }
      else if(num[i] == '1'){
         one[i] = '0';
      }
   }
   one[SIZE] = '\0';
   printf("Ones' complement of binary number %s is %s\n",num, one);
   for(i = SIZE - 1; i >= 0; i--){
      if(one[i] == '1' && carry == 1){
         two[i] = '0';
      }
      else if(one[i] == '0' && carry == 1){
         two[i] = '1';
         carry = 0;
      }
      else{
         two[i] = one[i];
      }
   }
   two[SIZE] = '\0';
   printf("Two's complement of binary number %s is %s\n",num, two);
   return 0;
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Enter the binary number
1000010
Ones' complement of binary number 1000010 is 0111101
Two's complement of binary number 1000010 is 0111110

  1. सी ++ प्रोग्राम यह पता लगाने के लिए कि क्या कोई संख्या दो की शक्ति है?

    जांचें कि दी गई संख्या 2 की शक्ति है या नहीं। पहले नीचे जांचें कि कौन सी संख्याएं दो की शक्ति हैं या नहीं। यह कोड जांचता है कि संख्या विषम है या नहीं और फिर इसे समवर्ती रूप से विभाजित करें जब तक कि यह 0 या विषम न हो जाए। यदि यह 0 हो जाता है तो यह एक शक्ति 2 है अन्यथा यह नहीं है। एक बेहतर विकल्प संख

  1. जावा प्रोग्राम जाँच के लिए कि क्या दी गई संख्या फाइबोनैचि संख्या है?

    दी गई संख्या फाइबोनैचि है या नहीं यह जांचने के लिए जावा प्रोग्राम निम्नलिखित है - उदाहरण public class Demo{    static boolean perfect_square_check(int val){       int s = (int) Math.sqrt(val);       return (s*s == val);    }    static boole

  1. दो दी गई तिथियों के बीच दिनों की संख्या खोजने के लिए पायथन कार्यक्रम

    टो तिथियों के बीच दिनों की संख्या का पता लगाने के लिए, हम पायथन डेटाटाइम मॉड्यूल का उपयोग कर रहे हैं। सबसे पहले, आवश्यक पुस्तकालय आयात करें - from datetime import date दिनांक ऑब्जेक्ट बनाएं और उन तिथियों को इनपुट करें जिनसे आप दिनों की गणना करना चाहते हैं - date1 = date(2021, 7, 20) date2 = date(20