Trascura la pow, che altro non fa che ottenere tutte le potenze di 2 ...codice:#include <iostream> #include <stdlib.h> #include <math.h> using namespace std; int main() { int valore; cout<<"\nInserisci il numero da convertire: "<<endl; cin>>valore; cout<<"\nIl numero convertito in base 2 e': "<<endl; for (int j = 8*sizeof(int); j >= 0; j--) cout << (bool)(valore&((int)pow(2,j))); cout << endl << endl; system("pause"); return 0; }
Guarda la sizeof ...
(sizeof (int)*8) ti consente di ottenere il numero di bit ...
(sizeof restituisce il numero di byte)...
Prova con: int mask = pow(2,sizeof(int)*8);
Poi stampi un numero come carattere -_-" (0x30 -> 0, 0x31 -> 1)...