Какое максимальное значение для int32?

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

Комментарии к вопросу (19)
Решение

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

Комментарии (24)

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

Комментарии (11)

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

Комментарии (11)

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

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

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

Комментарии (15)

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

Комментарии (4)

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

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

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

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

Комментарии (11)

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

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

Мнемоник: "пьяный AKA роговой" < br / >

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
Комментарии (8)

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

`[0-9] {1,9} | [0-1] [0-9] {1,8} | 20 [0-9] {1,8} | 21 [0-3] [0-9] {0-6] [0-9] {1,7} | 2147 [0-3] {1

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

Комментарии (1)

Вот как я вспомнил 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.

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

Комментарии (4)
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
Комментарии (1)

Просто возьмите любой приличный калькулятор и введите «7FFFFFF» в шестнадцатеричном режиме, затем переключитесь на десятичный.

2147483647.

Комментарии (6)

Это о 2,1 * 10 ^ 9. Не нужно знать точное 2 ^ {{{31}}} - 1 = 2 147 483 647.

C

Вы можете найти его в C, как это:

#include 
#include 

main() {
    printf("max int:\t\t%i\n", INT_MAX);
    printf("max unsigned int:\t%u\n", UINT_MAX);
}

дает (ну, без ,)

max int:          2,147,483,647
max unsigned int: 4,294,967,295

C ++ 11


std::cout 
Комментарии (2)

Вот мнемоника для запоминания 2 ** 31, вычтите одну, чтобы получить максимальное целочисленное значение.

a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9

Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide
2    1   4    7  4    8        3    6      4     8

Я использовал полномочия двух до 18 достаточно часто, чтобы помнить их, но даже я не удосужился запомнить 2 ** 31. Слишком легко рассчитать по мере необходимости или использовать константу или оценить как 2G .

Комментарии (4)

32 бита, один для знака, 31 бит информации:

2^31 - 1 = 2147483647

Почему -1?& Лт; br / > Потому что первое равно нулю, поэтому наибольшее количество - это счет минус один .

EDIT для cantfindaname88

Количество составляет 2 ^ 31, но наибольшее не может быть 2147483648 (2 ^ 31), потому что мы считаем из 0, а не 1.

Rank   1 2 3 4 5 6 ... 2147483648
Number 0 1 2 3 4 5 ... 2147483647

Другое объяснение только с 3 битами: 1 для знака, 2 для информации

2^2 - 1 = 3

Ниже все возможные значения с 3 битами: (2 ^ 3 = 8 значений)

1: 100 ==> -4
2: 101 ==> -3
3: 110 ==> -2
4: 111 ==> -1
5: 000 ==>  0
6: 001 ==>  1
7: 010 ==>  2
8: 011 ==>  3
Комментарии (1)

Ну, он имеет 32 бита и, следовательно, может хранить 2 ^ 32 различных значения. Половина из них отрицательна.

Решение составляет 2 147 483 647

И самый низкий - 2 147 483 648.

(Обратите внимание, что есть еще одно отрицательное значение.)

Комментарии (2)

Ну, кроме шуток, если вы действительно ищете полезное правило памяти, есть правило, которое я всегда использую для запоминания больших чисел.

Вам нужно разбить свой номер на части из 3-4 цифр и запомнить их визуально, используя проекцию на клавиатуре вашего мобильного телефона. На картинке легче показать:

Как видите, отныне вам просто нужно запомнить 3 фигуры, 2 из них похожи на Tetris L, а одна - на тик . Что определенно намного проще, чем запоминать 10-значный номер.

Когда вам нужно вспомнить номер, просто вспомните фигуры, представьте / посмотрите на клавиатуру телефона и спроектируйте фигуры на ней. Возможно, сначала вам придется взглянуть на клавиатуру, но после небольшой практики вы помните, что цифры идут сверху вниз, а затем - вправо, поэтому вы сможете просто представить это в своей голове.

Просто убедитесь, что вы помните направление фигур и количество цифр в каждой форме (например, в примере 2147483647 у нас есть 4-значный Tetris L и 3-значный L).

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

Комментарии (5)

Сначала запишите 47 дважды (вам нравится [Агент 47][1], верно?), сохраняя пробелы, как показано (каждая тире - это слот для одной цифры. Сначала 2 слота, затем 4)

--47----47

Думаю, у вас в руках 12 (потому что 12 = дюжина). Умножьте его на 4, первую цифру номера агента 47, т.е. 47, и поместите результат справа от первой пары, которая у вас уже есть


12 * 4 = 48
--4748--47 
Комментарии (1)

Самый простой способ сделать это для целых чисел - использовать шестнадцатеричное, при условии, что нет ничего подобного Int.maxInt (). Причина в том, что:

Максимальные значения без знака

8-bit 0xFF
16-bit 0xFFFF
32-bit 0xFFFFFFFF
64-bit 0xFFFFFFFFFFFFFFFF
128-bit 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Подписанные значения, используя 7F в качестве максимального подписанного значения

8-bit 0x7F
16-bit 0x7FFF
32-bit 0x7FFFFFFF
64-bit 0x7FFFFFFFFFFFFFFF

Подписанные значения, используя 80 в качестве максимального подписанного значения

8-bit 0x80
16-bit 0x8000
32-bit 0x80000000
64-bit 0x8000000000000000

Как это работает? Это очень похоже на бинарную тактику, и каждая шестнадцатеричная цифра составляет ровно 4 бита. Кроме того, многие компиляторы поддерживают гексы намного лучше, чем бинарные.

F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000

Таким образом, 7F равен 01111111 / 7FFF равен 011111111111111111111111. Кроме того, если вы используете это для "безумно высокой постоянной", 7F ... это безопасный гекс, но достаточно просто опробовать 7F и 80 и просто распечатать их на экране, чтобы увидеть, какой это.

0x7FFF + 0x0001 = 0x8000, поэтому ваша потеря - только одно число, поэтому с помощью 0x7F ... обычно это не плохой компромисс для более надежного кода, особенно когда вы начинаете использовать 32-битный или более

Комментарии (0)

2GB

(есть ли минимальная длина для ответов?)

Комментарии (7)

Лучшее правило для его запоминания: 21 (магический номер!) 47 (просто запомни это) 48 (последовательный!) 36 (21 + 15, обе магии!) 47 снова

Также легче запомнить 5 пар, чем 10 цифр.

Комментарии (0)