In C, in contesti che non coinvolgono la promozione di interi , i valori senza segno sono stati specificati per comportarsi come membri di un anello algebrico astratto "avvolgente" (quindi per qualsiasi X e Y, XY produrrà un valore univoco che, aggiunto a Y, produrrà X), mentre i tipi di interi con segno sono stati specificati come si comportano come numeri interi quando i calcoli sono rimasti all'interno di un certo intervallo e hanno permesso di fare qualsiasi cosa quando i calcoli andavano oltre. La semantica numerica in C #, tuttavia, è completamente diversa. Quando all'interno di un contesto numerico controllato, entrambi i tipi con segno e senza segno si comportano come numeri interi purché i calcoli rimangano nell'intervallo e generano OverflowException
quando non lo fanno; in un contesto non controllato, si comportano entrambi come anelli algebrici.
L'unica volta in cui è generalmente utile utilizzare un tipo di dati più piccolo di Int32
è quando è necessario eseguire il packing o il disimballaggio di oggetti per lo storage o il trasporto compatto. Se è necessario memorizzare mezzo miliardo di numeri positivi e saranno tutti compresi nell'intervallo da 0 a 100, l'utilizzo di un byte ciascuno anziché di quattro consentirà di risparmiare 1,5 gigabyte di spazio di archiviazione. Questo è un grande risparmio. Se un pezzo di codice deve memorizzare un totale di un paio di centinaia di valori, tuttavia, rendendo ciascuno di essi un byte anziché quattro, si risparmiano circa 600 byte. Probabilmente non ne vale la pena.
Per quanto riguarda i tipi non firmati, le uniche volte che sono davvero utili sono quando si esegue lo scambio di informazioni o quando si suddividono i numeri in pezzi. Se, per esempio, uno ha bisogno di fare calcoli su interi a 96 bit, sarà probabilmente molto più semplice eseguire i calcoli su gruppi di tre interi a 32 bit senza segno, che su gruppi di interi con segno. Altrimenti, non ci sono molte situazioni in cui l'intervallo di un valore firmato a 32 o 64 bit sarebbe inadeguato, ma sarebbe sufficiente la stessa dimensione di valore senza segno.