¿Cuál es el valor máximo que pueden almacenar un int y un uint?

Necesito entender un par de cosas:

  1. ¿Cuál es el valor máximo que pueden almacenar un int y un uint?
  2. ¿Los valores máximos almacenados en int y uint son iguales?

Respuestas (3)

  • An uintes la abreviatura de uint256, por lo que puede almacenar 2^256 valores; debido a que no tiene signo, el valor máximo es 2^256-1 (el cero necesita un espacio). ¿Cuál es el valor de entrada máximo para el parámetro de función uint256?
  • An intes la abreviatura de int256y puede almacenar la misma cantidad de valores, porque está firmado, el valor máximo (positivo) es 2^256 / 2 - 1.

Entonces los valores máximos de uinty intno son los mismos. Tienen la misma cantidad de valores pero intnecesitan almacenar valores también para números negativos.

Puede encontrar más detalles en: Valores máximos/mínimos de tipos de datos estándar

2^256/2 - 1 = 2^255 -1

Funciona igual que otros lenguajes de programación.

uintpuede almacenar 2^256-1números.

intalmacenar la mitad de ella. por ejemplo 2^256/2-1, números.

Int8 — [-128 : 127]
Int16 — [-32768 : 32767]
Int32 — [-2147483648 : 2147483647]
Int64 — [-9223372036854775808 : 9223372036854775807]
Int128 — [-170141183460469231731687303715884105728 : 170141183460469231731687303715884105727]
Int256 — [-57896044618658097711785492504343953926634992332820282019728792003956564819968 : 57896044618658097711785492504343953926634992332820282019728792003956564819967]


UInt8 — [0 : 255]
UInt16 — [0 : 65535]
UInt32 — [0 : 4294967295]
UInt64 — [0 : 18446744073709551615]
UInt128 — [0 : 340282366920938463463374607431768211455]
UInt256 — [0 : 115792089237316195423570985008687907853269984665640564039457584007913129639935]

No confíes en verificar

Esto es lo que uint8 puede almacenar en decimales: 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 o 2^256

2^7 * 1 + 2^6 * 1 + 2^5 * 1 + 2^4 * 1 + 2^3 * 1 + 2^2 * 1 + 2^1 * 1 + 2^0 * 1 
= 2^8 - 1
= 255

De la misma manera, uint256 puede almacenar en decimales:

2^256 - 1
= 115792089237316195423570985008687907853269984665640564039457584007913129639935