Computer memorizzano i numeri in formato binario , che è , come una sequenza di 1 e 0 . L'intervallo di numeri che può essere espresso da un numero binario è 2 elevato della quantità di numeri binari che compongono la sequenza . Ad esempio, un intero a 32 bit può contenere 2 alla potenza di 32 ( 4294967296 ) numeri unici . Se tale numero intero tenuto il maggior numero era capace di esprimere e il numero 1 è stato aggiunto ad essa , sarebbe troppo pieno . Ciò significa che il numero sarebbe ricominciare da 0. Verifica di integer overflow è di vitale importanza per gli errori di cattura di programma - si infrangono in C o C + + . Cose che ti serviranno
C + + ambiente di sviluppo integrato ( IDE ) , come ad esempio Eclipse CDT
C + + Compiler , come G+ +
Mostra più istruzioni
1
Inizia il C + + IDE facendo clic sulla sua icona e in attesa che si carichi .
2
Creare un nuovo progetto facendo clic su "File /nuovo progetto . " Un file di codice sorgente vuoto visualizzato nell'area di lavoro
3
Creare una funzione principale , scrivendo le seguenti righe di codice: .
Int main ( ) per < p > {
}
4
dichiarare tre variabili : due interi larghi 16 bit e una vasta intero a 32 bit , scrivendo le seguenti due linee all'interno delle parentesi graffe della funzione principale :
uint16_t a, b;
uint32_t c ;
5
Aggiungi i due interi larghi 16 bit insieme con la seguente operazione :
< p > c = a + b ;
6
prova per troppo pieno , confrontando la variabile c per il valore massimo di una variabile uint16_t può contenere ( 2 alla potenza di 16 -1 , o 65535 ) . Se i risultati di questa prova in vero , un overflow si verifica se si tenta di aggiungere questi due numeri e la loro memorizzazione in una variabile uint16_t .
If ( c > = 65535 ) per
{
}
7
Inserire un messaggio di errore all'interno delle parentesi graffe del caso è stato rilevato dichiarazione di cui sopra per consentire al programmatore sa un overflow. Si potrebbe scrivere questo :
cerr << "Overflow rilevato quando si aggiunge a + b " << endl;