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

C प्रोग्राम: बाइनरी नंबर का टूज कॉम्प्लीमेंट ज्ञात करना

टूज कॉम्प्लीमेंट के दो तरीके

  1. विधि 1: बाइनरी को वन्स कॉम्प्लीमेंट में बदलें, फिर 1 जोड़ें।
  2. विधि 2: LSB से पहला सेट बिट तक के ट्रेलिंग जीरोज़ और वह बिट अपरिवर्तित रहें, शेष सभी कॉम्प्लीमेंट करें।

लॉजिक: वन्स कॉम्प्लीमेंट

for(i = 0; i < SIZE; i++) {
    if(num[i] == '0') one[i] = '1';
    else if(num[i] == '1') one[i] = '0';
}
one[SIZE] = '\0';

लॉजिक: टूज कॉम्प्लीमेंट (वन्स कॉम्प्लीमेंट में 1 जोड़कर)

carry = 1;
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';

पूर्ण C प्रोग्राम

#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 binary number (8 bits): ");
    gets(num);
    // Ones complement
    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: %s\n", one);
    // Twos complement
    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("Twos complement: %s\n", two);
    return 0;
}

आउटपुट

Enter binary number: 1000010
Ones complement: 0111101
Twos complement: 0111110

साइन्ड इंटीजर्स में टूज कॉम्प्लीमेंट

कंप्यूटर्स साइन्ड इंटीजर्स स्टोर करने के लिए टूज कॉम्प्लीमेंट उपयोग करते हैं।

  • पॉजिटिव नंबर: सामान्य बाइनरी
  • नेगेटिव नंबर: पॉजिटिव का टूज कॉम्प्लीमेंट
  • उदाहरण: -5 (8-बिट) = 00000101 → 11111010 + 1 = 11111011

महत्व

  • एडिशन/सबट्रैक्शन के लिए एक ही हार्डवेयर उपयोग होता है।
  • शून्य का केवल एक प्रतिनिधित्व (+0 और -0 नहीं)।
  • रेंज: -128 से +127 (8-बिट के लिए)।
  1. - C++ प्रोग्राम: जांचें कि कोई संख्या 2 की घात है या नहीं

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

  1. - दिया गया नंबर फाइबोनैचि नंबर है या नहीं जांचने का जावा प्रोग्राम

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

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

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