Question: 8.32 Project 3: Bits Define a class named Bits that holds a single integer variable. You will use this integer simply as a container of

8.32 Project 3: Bits Define a class named Bits that holds a single integer variable. You will use this integer simply as a container of bits. The number of bits you can support depends on the type of integer you use. We will use an unsigned long long, which on most platforms occupies 64 bits. However, DO NOT HARD-CODE the type of integer you use throughout your code. You should be able to change only one line of code for your class to work with a different size integer (see the using statement on the second code line below). The code skeleton below gets you started, and also shows you the interface your class needs to implement. class Bits using IType - unsigned long long; enum (NBITS = sizeof(IType) *8); I Type bits = 0; public: Bits() = default; Bits (IType n) bits-n; 3 static int size() { return NBITS; 1 bool at (int pos) const; // Returns (tests) the bit at bit position pos void set (int pos); // Sets the bit at position pos void set(); // Sets all bits void reset (int pos); // Resets (makes zero) the bit at position pos void reset(); // Resets all bits void assign(int pos, bool val); // Sets or resets the bit at position pos depending on val vois assign (IType n); // Replaces the underlying integer with n void toggle (int pos); // Flips the bit at position pos void toggle(); // Flips all bits void shift (int n); // If n > 0, shifts bits right n places; if n 0, rotates right n places; if n 0, shifts bits right n places; if n 0, rotates right n places; if n
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
