Tengo una pregunta muy simple que me desconcierta durante mucho tiempo. Estoy tratando con redes y bases de datos, por lo que una gran cantidad de datos con los que estoy contando son contadores de 32 y 64 bits (sin signo), identificadores de identificación de 32 y 64 bits (tampoco tienen un mapeo significativo para el signo). Prácticamente nunca trato con ningún asunto de palabras reales que pueda expresarse como un número negativo.
Mis compañeros de trabajo y yo usamos rutinariamente tipos sin signo como uint32_t
y uint64_t
para estos asuntos y debido a que sucede con tanta frecuencia, también los usamos para índices de matriz y otros usos enteros comunes.
Al mismo tiempo, varias guías de codificación que estoy leyendo (por ejemplo, Google) desalientan el uso de tipos enteros sin signo, y que yo sepa, ni Java ni Scala tienen tipos enteros sin signo.
Por lo tanto, no pude averiguar qué es lo correcto: usar valores con signo en nuestro entorno sería muy inconveniente, al mismo tiempo que codificaría las guías para insistir en hacer exactamente esto.