Nwlapcug.com


GCC Int Size: 64 Bit vs 32 Bit

Processori per computer sono aumentato di complessità e capacità fin dalla loro invenzione, e programmatori di computer hanno dovuto progettare i loro strumenti di sviluppo intorno a questi cambiamenti. Come memoria aumenta di dimensioni, come nel passaggio da processori a 32 bit a 64-bit, vecchi compilatori e codice sorgente devono essere aggiornati per poter sfruttare appieno il potenziale di un processore. Parte di questo deriva dall'aumentato spazio disponibile per precisione variabili o numeri, ad esempio numeri interi. La GNU Compiler Collection, o GCC, non è fa eccezione. Sebbene i programmatori possono modificare GCC di lavoro tra i sistemi a 32-bit e 64-bit, il processore determina in ultima analisi quali dati taglie lavoro migliore nel codice sorgente.

Numeri interi e memoria

Durante la scrittura di codice informatico, inevitabilmente si utilizzerà uno dei manufatti necessari della programmazione: variabili. Una delle variabili primarie disponibili in più ogni linguaggio di programmazione è il numero intero. Il numero intero - un numero intero decimale - rappresenta un'unità di base numerica in forma decimale. Tuttavia, poiché il computer non memorizzare internamente i valori numerici come numeri decimali, ma come numeri binari, le variabili integer risiedono in posizioni di memoria come stringhe di cifre binarie. Queste stringhe binarie sono soggetti ai vincoli di memoria del sistema e al numero di cifre binarie può tenere una posizione di memoria.

GCC e il processo di compilazione

Quando si compila un programma per un sistema Unix o Linux, probabilmente si utilizzerà il compilatore GNU GCC. Il compilatore GCC prende il codice sorgente e lo compila in linguaggio assembler per il processore host del sistema informatico. A seconda del processore e l'implementazione di GCC disponibili, il codice dell'assembly può apparire diverso tra macchine simili. Parte del processo di compilazione, tuttavia, prevede la gestione dei tipi di dati nel codice sorgente all'interno della struttura dell'architettura del processore.

Processori a 32 e 64 bit

La progressione di dimensioni del registro di processore ha seguito un percorso particolare legato alla rappresentazione numerica binaria. Un registro in un processore è una singola posizione di memoria all'interno del processore. Un computer è limitato a quanta memoria possono affrontare e le dimensioni degli elementi di dati archiviabili. Ha un processore a 32-bit registri a 32 bit, che significa che è possibile memorizzare gli elementi fino a 2 ^ 32 bit. In termini di decimali, un registro a 32 bit può archiviare un numero non negativo senza segno grande come 4.294.967.295. Registri con 64 bits per espandere questo raddoppiando la quantità di cifre binarie disponibili per rappresentare i numeri.

GCC e dimensione Integer

In genere, i compilatori sono limitati dai processori che compilano i loro programmi. Una versione di GCC compilazione dei programmi su un processore a 32 bit potrebbe non necessariamente compilare un programma pronto per l'uso di 64-bit. Tuttavia, anche se un compilatore come GCC è limitato dal suo processore, è la combinazione del processore e del compilatore che determina la dimensione di un valore integer in un determinato programma. Per impostazione predefinita, nella programmazione C e C++ in un compilatore GCC, un valore long integer su un sistema a 32 bit è 32 bit, mentre un valore long integer su un sistema a 64 bit è di 64 bit.