En el siguiente ejemplo vamos a ver cómo invertir los bits de un número entero utilizando máscaras y bits con el programa Zinjal.
CÓDIGO
#include <iostream>
using namespace std;
void invierteBits(unsigned int n);
void ingresoDatos(unsigned int &n);
int main(int argc, char *argv[]) {
unsigned int n;
ingresoDatos(n);
invierteBits(n);
return 0;
}
void ingresoDatos(unsigned int &n){
cout<<"Ingrese número: ";
cin>>n;
}
void imprimeBits(unsigned int n){
unsigned int mask= 0x80000000;
for(int i=1;i<=32;i++){
if((n&mask)>0){
cout<<1 cout="" else="" mask="mask">>1;
if(i%4==0)cout<<" ";
}
}
void invierteBits(unsigned int n){
cout<<"Número expresado en bits: ";
imprimeBits(n);
cout<<"\nNúmero expresado en bits invertidos: ";
unsigned int mask= 0x80000000;
for(int i=1;i<=32;i++){
if((n&mask)>0){
cout<<0 cout="" else="" mask="mask">>1;
if(i%4==0)cout<<" ";
}
}