/* Programma che accetta in input un intero a 16 bit e stampi la stringa di bit che rappresenta l'intero stesso. NOTA: il programma può essere utilizzato per investigare sulla rappresentazione in macchina degli interi... Powered by P. Basile */ #include #include const int BITS = 16; // Massimo numeri di bit presi in considerazione // Dichiarazione del tipo binaryString // è un array di caratteri interpretato come stringa binaria (di '0' e '1') // il carattere in più è per il 'null' finale typedef char binaryString[BITS+1]; // Prototipo della funzione di trasformazione in stringa di bit void bitstring(int numero, binaryString binstr); int main() { int x; binaryString strBit; // Input dell'intero cout << "Inserire un intero -> "; cin >> x; cout << endl; // Effettua la trasformazione bitstring(x, strBit); // Visualizza la stringa in output cout << "Stringa di bit risultante -> " << strBit << endl; system("PAUSE"); return (0); } // bitString // Parametri in Input: numero (intero) // Output: binstr (binaryString) // Valore di ritorno: nessuno void bitstring(const int numero, binaryString binstr) { long i, j; int index, iCounter; for ( iCounter = 0; iCounter < BITS ; iCounter++) { // assegna a j il valore 2^iCounter (2 elevato a iCounter) // ossia un bit spostato a sinistra iCounter volte j = 1 << iCounter; // esamina il bit di posizione "iCounter" con un AND(&) bit a bit con j // e assegna il carattere binario corrispondente all'elemento 'index' // della stringa binaria index = BITS - iCounter - 1; // l' LSB va nella posizione piu' a destra // e quindi di indice piu' alto if (j & numero) binstr[index] = '1'; else binstr[index] = '0'; } binstr[BITS] = '\0'; // Aggiunge il null finale return; // nessun valore di ritorno }