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

C++ में बिट ऐरे का कार्यान्वयन

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

एल्गोरिदम

फंक्शन और स्यूडोकोड:

Begin
    Function getBit(int val, int pos)
        singleBit->b = 0
        if(pos == 0)
            singleBit->b = val & 1
        else
            singleBit->b = (val & (1 << pos)) >> pos
        return singleBit

    Function setBit(BitArr *bt, B *bit, int pos)
        bt->bVal[pos] = bit
        return bt

    Function getVal(BitArr *bArray)
        initialize val = 0
        initialize bVal = 0
        bVal = bArray->bVal[0]->b
        val = val | bVal
        for i = 1 to B_A_LENGTH - 1
            bVal = bArray->bVal[i]->b
            bVal = bVal << i
            val = val | bVal
        return val
    done
End.

उदाहरण कोड

#include <iostream>
#include <string>
using namespace std;

#define B_A_LENGTH 4

typedef struct {
    unsigned int b : 1;
} B;

class BitArr {
private:
    B **bVal;

public:
    BitArr() {
        bVal = new B*[B_A_LENGTH];
    }

    B *getBit(int val, int pos) {
        B *singleBit = new B;
        singleBit->b = 0;
        if(pos == 0) {
            singleBit->b = val & 1;
        } else {
            singleBit->b = (val & (1 << pos)) >> pos;
        }
        return singleBit;
    }

    BitArr *setBit(BitArr *bt, B *bit, int pos) {
        bt->bVal[pos] = bit;
        return bt;
    }

    int getVal(BitArr *bArray) {
        int val = 0;
        unsigned int bVal = 0;
        bVal = bArray->bVal[0]->b;
        val |= bVal;
        for(int i = 1; i < B_A_LENGTH; i++) {
            bVal = bArray->bVal[i]->b;
            bVal <<= i;
            val |= bVal;
        }
        return val;
    }
};

int main() {
    int v;
    cout << "Enter 4 bit integer value (0 - 8): ";
    cin >> v;
    BitArr bt, *samplebt;
    samplebt = new BitArr;
    for (int i = 0; i < B_A_LENGTH; i++) {
        samplebt = bt.setBit(samplebt, bt.getBit(v, i), i);
        cout << "Bit of " << v << " at position " << i << ": " << "\n" << bt.getBit(v, i)->b << endl;
    }
    cout << "The value is: " << bt.getVal(samplebt) << endl;
    return 0;
}

आउटपुट

Enter 4 bit integer value (0 - 8): 6
Bit of 6 at position 0: 0
Bit of 6 at position 1: 1
Bit of 6 at position 2: 1
Bit of 6 at position 3: 0
The value is: 6
  1. C++ में सरणी की बिटोनिसिटी की जांच करें C++ में सरणी की बिटोनिसिटी की जांच करें

    N पूर्णांकों की एक सरणी arr[N] दी गई है, कार्य यह जांचना है कि दी गई सरणी बिटोनिक है या नहीं। यदि दी गई सरणी बिटोनिक है तो हां यह एक बिटोनिक सरणी है प्रिंट करें, अन्यथा नहीं यह बिटोनिक सरणी नहीं है प्रिंट करें। एक बिटोनिक सरणी वह है जब सरणी पहले सख्ती से बढ़ते क्रम में होती है और फिर सख्ती से घटते

  1. - C++ प्रोग्राम: ऐरे का उपयोग करके स्टैक कार्यान्वयन

    ऐरे आधारित स्टैक निश्चित आकार की सरणी और top सूचकांक का उपयोग करके स्टैक कार्यान्वयन। LIFO सिद्धांत का पालन करता है। C++ प्रोग्राम उदाहरण = MAX - 1) cout << Stack Overflow << endl; else { top++; stack[top] = val; } } void pop() { if (top = 0; i--)

  1. - C++ प्रोग्राम: सॉर्टेड ऐरे कार्यान्वयन (सिलेक्शन सॉर्ट)

    सॉर्टेड ऐरे ऐरे जिसमें तत्व क्रमबद्ध क्रम में हों (संख्यात्मक, वर्णानुक्रमिक, आदि)। कई सॉर्टिंग एल्गोरिदम: बबल सॉर्ट, इन्सर्शन सॉर्ट, सिलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, हीप सॉर्ट। सिलेक्शन सॉर्ट अनसॉर्टेड भाग में सबसे छोटा तत्व ढूंढकर उसे शुरुआत से स्वैप करता है। O(n²) समय जटिलता। C++ प्रोग