Вам нужно знать, сколько битов в типе, и подписано оно или нет.
Например, int
является 32-битным в C # и подписано. Это означает, что есть 31 бит для представления числа (1 бит используется для определения отрицательного или положительного значения). Таким образом, вы бы вычислили 2 31 и вычли бы единицу, равную 2147483647 (что и возвращает Integer.MaxValue).
Similary a byte
имеет 8 бит и не имеет знака, поэтому максимальное значение равно 2 8 -1 или 255.