
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
C++ Program to Implement Bit Array
This is a C++ program to implement Bit Array. A Bit Array is an array data structures that compactly stores data. It is basically used to implement a simple data structure.
Algorithm
Functions and pseudocodes:
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.
Example Code
#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 positon "<<i<<": "<<"\n"<<bt.getBit(v, i)->b<<endl; } cout<<"The value is: "<<bt.getVal(samplebt)<<endl; return 0; }
Output
Enter 4 bit integer value (0 - 8): 6Bit of 6 at positon 0: 0 Bit of 6 at positon 1: 1 Bit of 6 at positon 2: 1 Bit of 6 at positon 3: 0 The value is: 6
- Related Articles
- C++ Program to Implement Parallel Array
- C++ Program to Implement Sorted Array
- C++ Program to Implement Sparse Array
- C++ Program to Implement Queue using Array
- C++ Program to Implement Variable Length Array
- C++ Program to Implement Stack using array
- C++ Program to Implement Array in STL
- Java Program to implement Binary Search on char array
- Java Program to implement Binary Search on long array
- Java Program to implement Binary Search on double array
- Java Program to implement Binary Search on float array
- Java Program to implement Binary Search on an array
- C++ Program to Implement Fisher-Yates Algorithm for Array Shuffling
- 8086 program to reverse 16 bit number using 8 bit operation
- 8086 program to reverse 8 bit number using 8 bit operation

Advertisements