यह बिट ऐरे को लागू करने के लिए एक 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