Dev - C++ - Manipulacion de bits

 
Vista:
Imágen de perfil de cristofer
Val: 4
Ha disminuido su posición en 5 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Manipulacion de bits

Publicado por cristofer (4 intervenciones) el 03/09/2017 06:59:48
Hola buenas a todos , estoy estudiando la carreraa de ingenierai de sistemas , y voy estudiando manipulacion de bits en c++ , hice mi codigo , compila , pero el problema es que el resultado que bota no es el correcto por ejemplo , si tengo 1001000 y quiero mover 2 bits a la derecha sería 00100100, pero en la pantalla me bota un numero pequeño digamos , no sale todo el numero , 1001, tan solo así bota el resultado , el problema me pide que ingrese un numero , que lo pase a binario , luego que este numero corra una cantidad de bits que yo ingrese , este es mi codigo , espero me puedan ayudar , esta super entendible. solo tengo ese problema .agradeceria su ayuda ,


Por si las dudas cuando coloco (contador&numero) {<<<esto refiere cuando tengamos 11001010
10100001
cout<<"1"; --------------
} 10000000
este es un ejemplo , pero para eso funciona , cada vez que contador&numero sea verdadero osea "1 " imprimira 1 , recordando que el if se lee aparte de si , si es verdad que cumple esto , entonces imprimira 1 en tal caso esto no sea verdad entonces cumplida lo otro (else).

ahora si mi codigo :

#include <iostream>
#include <stdlib.h>
using namespace std;

int main() {
int a ;
int b ;
char c;
int m;
int n;

do{
cout<<"ingresar el valor que desea pasar a binario:"; cin>>a;

for(int contador=128;contador>0;contador/=2){
if(contador&a){
cout<<"1";
}
else{
cout<<"0";
}
}
cout<<endl;
cout<<"cuantos bits desea mover :"; cin>>b; cout<<endl;
cout<<"el numero binario se ha movido :"<<b<<"bits a la derecha";cout<<endl;
for(int contador=128;contador>0;contador>>=b){
if(contador&a){
cout<<"1";
}
else{
cout<<"0";
}
}

do{
cout<<endl;
cout<<"----------------------------------------------------------";cout<<endl;
cout<<"desea continuar S/N :" ;cin>>c;cout<<endl;
system("cls");

if(c=='s'||c=='n'){
m=1;
}
else{
m=0;
}
if(c=='S'||c=='N'){
n=1;
}
else{
n=0;
}
if(m+n==0){
cout<<"****************error ingrese nuevamente**************** :";cout<<endl;
cout<<"*********************ingrese solo S/N:***************";cout<<endl;
}
}while(m+n==0);
system("cls");
}while(c=='s'||c=='S');
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder