В общем, вы могли бы выполнить простую операцию, которая отражает саму природу Int32, заполнить все доступные биты 1 - это то, что вы можете легко сохранить в своей памяти. Он работает в основном одинаково в большинстве языков, но я собираюсь использовать Python для примера:
max = 0
bits = [1] * 31 # Generate a "bit array" filled with 1's
for bit in bits:
max = (max << 1) | bit
# max is now 2147483647
Для беззнаковых Int32 сделайте его 32 вместо 31 1.
Но так как опубликовано еще несколько авантюрных подходов, я начал думать о формулах, просто для удовольствия ...
Формула 1 (числа объединяются, если оператор не указан)
- a = 4
- b = 8
- ба / а
- абы-1
- аЬ
- абы-абы
- абы-1
Python quickcheck
a = 4
b = 8
ab = int('%d%d' % (a, b))
ba = int('%d%d' % (b, a))
'%d%d%d%d%d' % (ba/a, ab-1, ab, ab-a-b, ab-1)
# gives '2147483647'
Формула 2
- х = 48
- х / 2-3
- х-1
- х
- х * 3/4 * * тысяча сорок шесть
- х-1 * * тысяча сорок восемь
Python quickcheck
x = 48
'%d%d%d%d%d' % (x/2-3, x-1, x, x*3/4, x-1)
# gives '2147483647'