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

दिए गए बाइनरी नंबर के लिए 2's कॉम्प्लीमेंट खोजने का C प्रोग्राम

नीचे दिए गए उदाहरण पर विचार करें:

उदाहरण

इनपुट निम्नानुसार है:

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
  1. - C प्रोग्राम: व्हाइल लूप का उपयोग करके पालिंड्रोम नंबर ज्ञात करना

    पालिंड्रोम नंबर वह संख्या है जो उलटने पर समान रहती है। C भाषा में, उपयोगकर्ता को किसी भी पॉजिटिव इंटीजर को दर्ज करने की अनुमति है और व्हाइल लूप का उपयोग करके यह जांचना है कि दी गई संख्या पालिंड्रोम है या नहीं। उदाहरण 1 व्हाइल लूप का उपयोग करके पालिंड्रोम नंबर ज्ञात करने के लिए C प्रोग्राम निम्नलिख

  1. - C भाषा में पुनरावृत्त फ़ंक्शन (Iterative Function) का उपयोग करके संख्या को उल्टा करना

    समस्या C प्रोग्रामिंग भाषा में पुनरावृत्त फ़ंक्शन (while लूप) का उपयोग करके दी गई संख्या को उल्टे क्रम में कैसे प्रिंट करें? एल्गोरिदम 0: (a) reverse = reverse * 10 + number % 10 (b) number = number / 10 चरण 4: reverse लौटाएं उदाहरण: संख्या 356789 चरणnumbernumber % 10reverse (पहले)rever

  1. C में स्ट्रिंग को नंबर और नंबर को स्ट्रिंग में बदलना C में स्ट्रिंग को नंबर और नंबर को स्ट्रिंग में बदलना

    दो रूपांतरण फंक्शन्स sscanf(): स्ट्रिंग को नंबर में बदलता है। sprintf(): नंबर को स्ट्रिंग में बदलता है। स्ट्रिंग टू नंबर: sscanf() सिंटैक्स: sscanf(string_name, control_string, &var_list); उदाहरण: तारीख पार्स करना #include <stdio.h> int main() { char a[20] = 02 01 2010; int day, m