Possiamo classificare il calcolo in diverse categorie.
Per uno: un contesto significativo per l'informatica è una forma di indicizzazione. Possiamo indicizzare in un array, ad esempio. Un'altra forma è che possiamo contare gli oggetti (ad esempio, fornire loro un ID int) che creiamo in memoria.
Per questi, i nostri linguaggi di programmazione vengono di solito implementati in modo che esauriscano la memoria prima che il tipo di intero semplice trabocchi. Ad esempio, gli array possono essere limitati a 32k in mondi a 16 bit (e si potrebbe avere solo uno di questi), 2 ^ 31 elementi in mondi a 32 bit. E non puoi creare più di 32k oggetti in mondi a 16 bit e oggetti 2 ^ 31 in mondi a 32 bit (perché gli oggetti usano quasi universalmente più di un byte ciascuno). Possiamo considerare che, in un certo senso, valori int più grandi e più grandi implicano un maggiore utilizzo della memoria e che la memoria è esaurita poco prima del semplice overflow di int.
Per un altro, tuttavia, abbiamo tipi di calcolo che non utilizzano memoria aggiuntiva in proporzione con valori numerici più grandi, ad esempio, sommatoria, dobbiamo fare molta attenzione alla selezione del tipo di dati. Altri esempi sarebbero le righe in un database, in cui il numero di riga (id riga) potrebbe superare la dimensione della memoria in quanto gran parte dei dati risiede sul disco anziché nella memoria. In questi casi dobbiamo guardare ad altri limiti per indicare la dimensione corretta da usare. Ad esempio, se il db limita a 2 ^ 63 righe (big db!), Allora dovremmo essere ok per usare un int a 64 bit, indipendentemente dal fatto che stiamo usando una macchina a 16 bit o superiore.