Какое максимальное значение для int32? - PullRequest
1380 голосов
/ 18 сентября 2008

Я никогда не могу вспомнить номер. Мне нужно правило памяти.

Ответы [ 50 ]

5016 голосов
/ 18 сентября 2008

Это 2 147 483 647. Самый простой способ запомнить это с помощью татуировки.

488 голосов
/ 18 сентября 2008

Самый правильный ответ, который я могу придумать, - Int32.MaxValue.

430 голосов
/ 01 июня 2010

Если вы считаете, что значение слишком сложно запомнить в базе 10, попробуйте базу 2: 1111111111111111111111111111111

288 голосов
/ 27 октября 2015

если вы можете запомнить все числа Пи, то искомое число находится в диапазоне от 1 867 996 680 до 1 867 996 689 десятичных цифр числа Пи

Числовая строка 2147483647 указывается с десятичной цифрой Пи 1 867 996 680. 3,14 ...... 86181221809936452346 2147483647 10527835665425671614 ...

источник: http://www.subidiom.com/pi/

283 голосов
/ 18 сентября 2008

Это 10 цифр, поэтому представьте, что это номер телефона (если вы в США). 214-748-3647. Я не рекомендую называть это.

166 голосов
/ 18 сентября 2008

Вместо того, чтобы думать об этом как об одном большом числе, попробуйте разбить его и найти связанные идеи, например:

  • 2 максимальных перерыва на снукер (максимальный перерыв - 147)
  • 4 года (48 месяцев)
  • 3 года (36 месяцев)
  • 4 года (48 месяцев)

Вышеуказанное относится к наибольшему отрицательному числу; положительным является то, что минус один.

Возможно, приведенная выше разбивка не будет более запоминающейся для вас (это вряд ли интересно!), Но, надеюсь, вы сможете придумать некоторые идеи, которые есть!

142 голосов
/ 16 июня 2012

Наибольшее отрицательное (32-битное) значение: -2147483648
(1 << 31) <br />

Наибольшее положительное (32-битное) значение: 2147483647
~ (1 << 31) <br />

Мнемоника: "Пьяный AKA роговой"

drunk ========= Drinking age is 21
AK ============ AK 47
A ============= 4 (A and 4 look the same)
horny ========= internet rule 34 (if it exists, there's 18+ material of it) 

21 47 4(years) 3(years) 4(years)
21 47 48       36       48
72 голосов
/ 01 июня 2010

В любом случае, возьмите это регулярное выражение (оно определяет, содержит ли строка неотрицательное целое число в десятичной форме, которое также не больше Int32.MaxValue)

[0-9]{1,9}|[0-1][0-9]{1,8}|20[0-9]{1,8}|21[0-3][0-9]{1,7}|214[0-6][0-9]{1,7}|2147[0-3][0-9]{1,6}|21474[0-7][0-9]{1,5}|214748[0-2][0-9]{1,4}|2147483[0-5][0-9]{1,3}|21474836[0-3][0-9]{1,2}|214748364[0-7]

Может быть, это поможет вам вспомнить.

60 голосов
/ 05 июля 2013

Вот как я запомнил 2147483647:

  • 214 - потому что 2,14 примерно равно пи-1
  • 48 = 6 * 8
  • 64 = 8 * 8

Напишите это горизонтально:

214_48_64_
and insert:
   ^  ^  ^
   7  3  7 - which is Boeing's airliner jet (thanks, sgorozco)

Теперь у вас есть 2147483647.

Надеюсь, это поможет хоть немного.

56 голосов
/ 18 сентября 2008
2^(x+y) = 2^x * 2^y

2^10 ~ 1,000
2^20 ~ 1,000,000
2^30 ~ 1,000,000,000
2^40 ~ 1,000,000,000,000
(etc.)

2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512

Таким образом, 2 ^ 31 (со знаком int max) составляет 2 ^ 30 (около 1 миллиарда) раз 2 ^ 1 (2), или около 2 миллиардов. И 2 ^ 32 это 2 ^ 30 * 2 ^ 2 или около 4 миллиардов. Этот метод аппроксимации является достаточно точным даже до 2 ^ 64 (где ошибка возрастает до 15%).

Если вам нужен точный ответ, вам следует воспользоваться калькулятором.

Удобные аппроксимации с выравниванием по словам:

  • 2 ^ 16 ~ = 64 тысячи // uint16
  • 2 ^ 32 ~ = 4 миллиарда // uint32, IPv4, unixtime
  • 2 ^ 64 ~ = 16 квинтиллионов (16 миллиардов или 16 миллионов триллионов) // uint64, "bigint"
  • 2 ^ 128 ~ = 256 квинтиллионов квинтиллионов (или 256 триллионов триллионов триллионов) // IPv6, GUID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...