Programação C/C++

Prof. Márcio Sarroglia Pinho

Exercícios sobre Operadores  Bitwise

1. Utilizando operadores bitwise, crie uma  classe Binario que gerencie a impressão de números no formato binário.  A construtora da classe deve receber um número inteiro como parâmetro. Por exemplo:

Binario b1(10);
b1.print();  // imprimir o número 10 em formato binário ou seja "1010".


Internamente o número deve ser armazenado como um atributo do tipo unsigned char.


2.
Sobrecarregue o operador
"<<" para permitr a impressão de objetos da classe Binario com a stream de saída cout. Consulte a página à respeito de sobrecarga de operadores.

Exemplo:

Binario b1(10);
cout << b1;  // imprimir o número 10 em formato binário ou seja "1010".


3. Complete a classe do exercício 1, criando uma nova construtora que receba uma string com a representação de um número em binário. Internamente o número deve ser armazenado no atributo já existente na classe, e não como uma string, ou seja, crie uma conversão da representação binária para um inteiro.

Exemplo:

Binario b1("1010");
cout << b1;  // imprimir o número 10 em formato binário ou seja "1010".


3. Sobrecarregue o operador de atribuição de forma que seja possível atribuir tanto interiros quando strings com a representação de um número em bináriao para objetos da classe Binario. Consulte a página à respeito de sobrecarga de operadores.

Binario b1, b2;

b1 = "1010"; // atribui 1010 (binário) ou seja(10 decimal) para b1
b2 = 16; // atribui 16(decimal) para b2
 

4. Utilizando operadores bitwise, crie uma classe que seja capaz de armazenar um vetor de 64 de ‘bits’. Internamente o vetor de bits deve ser armazenado como um vetor de char, declarado como no exemplo abaixo.

class VetorDeBits{
    // este atributo deve armazenar toda o vetor
      unsigned char dados[8];
public:
     MatrizDeBits();
 
     //liga o bit na posição (i)
      void set(int i); 
    // desliga o bit na posição (i)
      void reset(int i);
    // obtém o valor atual da posição (i)
      int get(int i);
};


5. Como você criaria uma Matriz de Bits ??

FIM.