int32 的最大值是多少?

What is the maximum value for an int32?

提问人:Flinkman 提问时间:9/19/2008 最后编辑:Jean-François FabreFlinkman 更新时间:9/6/2023 访问量:1912689

问:

锁定。这个问题及其答案被锁定,因为这个问题偏离了主题,但具有历史意义。它目前不接受新的答案或互动。

我永远不记得这个数字了。我需要一个内存规则。

整数

评论

48赞 comonad 3/29/2011
无符号:2³²-1 = 4·1024³-1;签名:-2³¹ ..+2³¹-1,因为符号位是最高位。只需学习 2⁰=1 到 2¹⁰=1024 并组合。1024=1k,1024²=1M,1024³=1克
31赞 Barmar 10/2/2013
我通常记得每 3 位大约是十进制数字。这让我达到了正确的数量级:32 位是 10 位。
8赞 Dunaril 11/14/2013
@JoachimSauer,如果你至少学会识别这些数字,它肯定可以帮助调试。
72赞 UltraCommit 3/11/2014
“如果磁盘已满,删除所有兆字节将存档”(2 个字母、1 个字母、4 个字母、7 个字母、4 个字母、8 个字母、3 个字母、6 个字母、4 个字母、7 个字母)
8赞 Balazs Nemeth 12/5/2014
当 int32 不够用时,一种情况:bbc.com/news/world-asia-30288542

答:

30赞 Sarien 9/19/2008 #1

嗯,它有 32 位,因此可以存储 2^32 个不同的值。其中一半是负面的。

解是 2,147,483,647

最低值为-2,147,483,648。

(请注意,还有一个负值。

评论

0赞 JB. 9/19/2008
它有 32 位,因此可以存储 2^32 个值。不少。
5062赞 Ben Hoffstein 9/19/2008 #2

它是 2,147,483,647。记住它的最简单方法是通过纹身。

评论

83赞 16807 12/4/2013
我的助记符:2^10 非常接近 1000,所以 2^(3*10) 是 1000^3 或大约 10 亿。32 位中的一位用于符号,因此最大值实际上只有 2^31,这大约是 2^(3*10) 的两倍:20 亿。
164赞 Vern D. 2/6/2016
2147483647不带逗号。
3赞 Otto Abnormalverbraucher 2/25/2016
@AbhimanyuAryan 把它想象成一个从零开始的数组,并取公式 。, , ... 等。。。您只有 32 位,即索引 0-31。要获得最大值,您实际上必须计算 n 从 0 到 31 或更简单的总和,您将得到“4294967295”作为无符号 int 的最大值,比预期的少 1 个。现在对 for signed int 执行相同的操作,您将获得 .这样做两次(一次为负数,一次为正数),您将得到 2 的差异2^index = value2^0 = 12^1 = 22^2 = 42^32 = 42949672962^n2^32 - 12^31 - 12,147,483,6472*(2^31 - 1)2^32 ;)
20赞 Tim 4/5/2016
只需使用:在 Java 中。Integer.MAX_VALUE
127赞 roottraveller 8/13/2016
2,147,483,647 = 0x7FFFFFFF,如果你想记住它,就用十六进制。
15赞 Kev 9/19/2008 #3

假设 .NET -

Console.WriteLine(Int32.MaxValue);
493赞 Adrian Clark 9/19/2008 #4

我能想到的最正确的答案是.Int32.MaxValue

评论

18赞 WildJoe 9/13/2011
在此之前,我曾经在我所有的项目中 #define INT32_MIN 和INT32_MAX。
3赞 Andre Figueiredo 11/18/2013
编程时:在99%的情况下是。但是您可能想知道,在规划编程方法或处理数据时,大约有 ~ 20 亿,尽管这是一个非常大的数字。:)
0赞 5/28/2014
@sehe latin1/Windows 1252 现在不是已经过时了吗?如果它不能容纳 ASCII 的 7 个字节,我认为它不值得在主内存中占有一席之地。我的意思是。。。UNICODE代码页有点用,但是超过一模的皮肤空间似乎是一种浪费。(更不用说它仍然不包括“pageup/pagedown”或“pagehome/pageend”的描述性字形)
0赞 dylnmc 11/21/2014
在 python2 中尝试一下。其实没有;我会告诉你,内置对象没有这个。:(int
1赞 mozzbozz 12/12/2014
除了提及正确的数字之外,此属性可能是一个很好的建议。但是,我不喜欢这个答案,因为它只提到了一种不可移植的去挖掘值的方式,也没有提到它适用于哪些编程语言......
291赞 WildJoe 9/19/2008 #5

它是 10 位数字,所以假装它是一个电话号码(假设您在美国)。214-748-3647. 我不建议打电话给它。

评论

13赞 Steven 10/22/2010
说到记住它作为电话号码,似乎可能有一些电话垃圾邮件发送者使用它:mrnumber.com/1-214-748-3647
8赞 Tarnay Kálmán 1/22/2011
“达拉斯没有”748“交易所。这个数字是假的。
104赞 Zarel 2/9/2011
@Steven我不认为他们是垃圾邮件发送者,只是那些不小心将电话号码存储为 而不是 MySQL 的人。INTVARCHAR
8赞 Krythic 2/21/2016
试着打电话给它。它响了几下,然后变成了错误的拨号音。=(
172赞 Luke Bennett 9/19/2008 #6

与其将其视为一个大数字,不如尝试将其分解并寻找相关想法,例如:

  • 斯诺克最大破发次数为2次(最大破发次数为147次)
  • 4 年 (48 个月)
  • 3 年 (36 个月)
  • 4 年 (48 个月)

以上适用于最大的负数;正是减一。

也许上面的分解对你来说不会再令人难忘了(这并不令人兴奋!),但希望你能想出一些想法!

评论

99赞 Ben Hoffstein 9/19/2008
这是我见过的最复杂的助记符之一。令人 印象 深刻。
9赞 Luke Bennett 9/19/2008
呵呵,像 Derren Brown 这样的人实际上提倡这种方法——将一个数字分解成随机的东西,但 whieh 比一堆数字更令人难忘:channel4.com/entertainment/tv/microsites/M/mindcontrol/remember/......
19赞 Tamas Czinege 6/17/2009
我有一个更好的助记符:你需要记住的是 2 和 31,因为它显然正好是 2^31!哦,等等......
28赞 Alderath 3/29/2012
@DrJokepu 我不确定运算符的优先级...这是否意味着或?2^(31!)(2^31)!
1赞 Luke Bennett 5/21/2013
@Lucio 请注意,我的回答首先与最大的负数有关,它以 48 结尾,而不是 47
46赞 darron 9/19/2008 #7

只需使用任何像样的计算器并在十六进制模式下输入“7FFFFFFF”,然后切换到十进制。

2147483647.

评论

150赞 Christoffer 6/17/2009
任何像样的计算器也可以做到 2^31。
17赞 States 10/26/2012
我不知道 2^31 似乎是很长的路要走:/
2赞 Vernon 1/31/2013
或者只是用十六进制记住它
4赞 sehe 2/12/2013
只。。。十六进制写。或Int32.MaxValue/numeric_limits<int32_t>::max()
8赞 kupsef 8/25/2014
@Christoffer 它实际上是 2^31 - 1 :)
55赞 Wedge 9/19/2008 #8
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(约 10 亿)乘以 2^1 (2),即大约 20 亿。2^32 是 2^30 * 2^2 或大约 40 亿。这种近似方法足够准确,即使在 2^64 左右(误差增长到大约 15%)。

如果你需要一个确切的答案,那么你应该拿出一个计算器。

方便的单词对齐容量近似值:

  • 2^16 ~= 6.4万 // uint16
  • 2^32 ~= 40 亿 // uint32、IPv4、unixtime
  • 2^64 ~= 16 quintillion (又名 160 亿或 1600 万亿) // uint64, “bigint”
  • 2^128 ~= 256 quintillion quintillion (aka 256 trillion trillion trillions) // IPv6, GUID

评论

76赞 Scott Stafford 10/30/2010
硬盘制造商是这么说的。
20赞 Rune 9/19/2008 #9

2GB的

(答案有最小长度吗?

评论

9赞 Ted Hopp 9/15/2012
@JoukevanderMaas - 实际上,它应该是 4B。
1赞 Serj Sagan 5/11/2013
这就是为什么您在 32 位计算机上可以拥有的 RAM 限制为 4GB 的原因
3赞 SwissCoder 5/27/2013
4GB 的值对于无符号整数是正确的。如果你有一个有符号的整数,你显然需要除以 2 才能得到可能的最大值
0赞 atoMerz 8/22/2013
@SerjSagan 在 Windows 32 位 AFAIK 中为 3GB。不知道为什么!
3赞 Rune 8/27/2013
在 32 位中,有 2GB 的内存空间预留给用户进程,2GB 用于内核。可以对其进行配置,以便内核仅保留 1 GB
10赞 Brian 9/19/2008 #10

请记住,2^(10*x) 大约是 10^(3*x) - 您可能已经习惯了千字节/千字节等。那是:

2^10 = 1024                ~= one thousand
2^20 = 1024^2 = 1048576    ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion

由于 int 使用 31 位(符号为 + ~1 位),因此只需将 2^30 加倍即可获得大约 20 亿。对于使用 32 位的无符号 int,再次加倍表示 40 亿。当然,误差因子越大,误差系数就越高,但你不需要记住确切的值(如果你需要它,无论如何你都应该为它使用预定义的常量)。近似值足以注意到某些东西何时可能危险地接近溢出。

评论

10赞 Adam Liss 11/5/2008
题外话:2^4 = 4^2,因此幂是可交换的!
10赞 tckmn 5/12/2013
@Pier-OlivierThibault 不,我一直在使用它!现在我需要找出为什么我所有的数学都出错了。可能与乘法错误有关。无论如何,再见!
7赞 jalf 3/3/2009 #11

你是什么意思?记住它是 2^32 应该很容易。 如果你想让一个规则记住这个数字的值,一个方便的经验法则是用于在二进制和十进制之间进行转换:

2^10 ~ 1000

这意味着 2^20 ~ 1,000,000

和 2^30 ~ 1,000,000,000

再加一倍(2^31)就是20亿,再加一倍(2^32)就是40亿。

这是粗略估计任何二进制数的简单方法。二进制中的 10 个零变为十进制中的 3 个零。

评论

7赞 Steve Folly 3/3/2009
但它不是 2^32 - 它是 (2^31)-1
14赞 Seq 3/3/2009 #12

最简单的记忆方法是查看std::numeric_limits< int >::max()

例如(来自 MSDN),

// numeric_limits_max.cpp

#include <iostream>
#include <limits>

using namespace std;

int main() {
   cout << "The maximum value for type float is:  "
        << numeric_limits<float>::max( )
        << endl;
   cout << "The maximum value for type double is:  "
        << numeric_limits<double>::max( )
        << endl;
   cout << "The maximum value for type int is:  "
        << numeric_limits<int>::max( )
        << endl;
   cout << "The maximum value for type short int is:  "
        << numeric_limits<short int>::max( )
        << endl;
}
5赞 Andre Haverdings 6/17/2009 #13

Int32 表示您有 32 位可用于存储您的号码。最高位是符号位,表示数字是正数还是负数。所以你有 2^31 位的正数和负数。

如果零是正数,则得到(前面提到的)的逻辑范围

+2147483647 至 -2147483648

如果您认为这太小了,请使用 Int64:

+9223372036854775807 至 -9223372036854775808

你为什么要记住这个数字?要在代码中使用?应始终在代码中使用 Int32.MaxValue 或 Int32.MinValue,因为这些是静态值(在 .net Core 中),因此使用速度比使用代码创建新 int 更快。

我的声明:如果凭记忆知道这个数字..你只是在炫耀!

评论

2赞 Tom Leys 6/17/2009
大多数现代计算机以“二进制”格式存储数字。最高(不是最低)位是符号。二进制的巧妙之处在于,-ve 数字由 CPU 的自然溢出规则处理。即 0xFF 是 8 位 -1,将其添加到0x01 (+1) 中,得到0x100。将 8 以上的位截断为 0x00,您就有了答案。
75赞 Chizh 6/2/2010 #14

无论如何,采用此正则表达式(它确定字符串是否包含十进制形式的非负整数,该整数也不大于 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]

也许它会帮助你记住。

评论

12赞 Sнаđошƒаӽ 3/25/2015
对我来说,这听起来更容易和有趣。其实真的比.这将对OP有很大帮助2147483647
14赞 NotMe 6/2/2010 #15

有趣的是,Int32.MaxValue 的字符数多于 2,147,483,647。

但话又说回来,我们确实有代码补全,

所以我想我们真正需要记住的就是,在 Visual Studio 中输入的只有 6 个字符。Int3<period>M<enter>

更新出于某种原因,我被否决了。我能想到的唯一原因是他们不理解我的第一个陈述。

“Int32.MaxValue”最多需要 14 个字符才能键入。 2,147,486,647 需要 10 或 13 个字符来键入,具体取决于您是否输入逗号。

评论

2赞 glglgl 11/26/2013
但重要的不是你必须输入多少个字符,而是如何记住它。我敢肯定比.但是,没有理由使用-1。Iwannagohome298347829
3赞 BradleyDotNET 1/23/2014
它可能比这更小,只需制作自己的最大值片段,“imv”<tab> <tab>也许?
4赞 Michael 3/14/2014
字符击键。对于这个可怜的 .Net 用户来说,它是 +++Return。!=in.ma
439赞 Curd 6/2/2010 #16

如果您认为该值在以 10 为基数中太难记住,请尝试以 2 为基数: 1111111111111111111111111111111

评论

145赞 Curd 4/19/2011
@Nick Whaley:不,1111111111111111111111111111111是积极的。11111111111111111111111111111111将是负面的:-)
58赞 Nelson Galdeman Graziano 4/30/2014
Base 16 更简单 7FFFFFFF
34赞 BlueRaja - Danny Pflughoeft 5/16/2014
@Curd作为以 2 为底数的数字仍为正数(以 2 为底数的负数示例为 -1)。只有当表示 32 位 2 的补码数 :) 时,该位序列才为负数11111111111111111111111111111111
143赞 big_tommy_7bb 8/18/2014
最容易记住的是基数 2,147,483,647。那么你所要记住的就是 1。
82赞 fscheidl 8/19/2014
@tim_barber_7BB实际上,它是 10。
144赞 Aaren Cordova 6/16/2012 #17

最大负数(32 位):-2147483648
(1 << 31)

最大正(32位)值:2147483647
~(1 << 31)

助记符:“醉酒又名角质”

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

评论

27赞 BenM 1/20/2014
世界上最难回忆的助记符。如果你能记住 0118 999 88199 9119 752...3 你就能记住这个。
11赞 Tim Tisdall 1/25/2014
@Rondles我认为最后实际上是 7253。
21赞 Joffrey 6/20/2014
不。这里的饮酒年龄是 18 岁......好像我不能用这个助记符,我的生活被毁了。
4赞 Mohd Abdul Mujib 6/30/2015
@Aaren Cordova 他们曾经说过 stackoverflow 永远不会很有趣,只不过是一个问答网站,我通常会给他们指出这个答案。这个东西只能在天才的头脑中创造出来,我的意思是这就是艺术
5赞 Fred Mitchell 6/22/2016
最大的负 32 位整数(即 64 位)是 -1。
21赞 Joe Plante 9/14/2012 #18

对整数执行此操作的最简单方法是使用十六进制,前提是没有类似 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 等于 0111111111111111。另外,如果您将其用于“非常高的常数”,则 7F...是安全的十六进制,但尝试 7F 和 80 很容易,只需将它们打印到屏幕上即可查看是哪一个。

0x7FFF + 0x0001 = 0x8000,所以你的损失只有一个数字,所以使用0x7F...对于更可靠的代码来说,通常不是一个糟糕的权衡,尤其是当您开始使用 32 位或更多时

36赞 Martin Thoma 11/28/2012 #19

这是关于.无需确切知道.2.1 * 10^92^{31} - 1 = 2,147,483,647

C

你可以在 C 语言中找到它,如下所示:

#include <stdio.h>
#include <limits.h>

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 << std::numeric_limits<int>::max() << "\n";
std::cout << std::numeric_limits<unsigned int>::max() << "\n";

爪哇岛

你也可以用 Java 得到这个:

System.out.println(Integer.MAX_VALUE);

但请记住,Java 整数始终是有符号的。

Python 2 中文文档

Python 具有任意精度整数。但在 Python 2 中,它们被映射到 C 整数。所以你可以这样做:

import sys
sys.maxint
>>> 2147483647
sys.maxint + 1
>>> 2147483648L

因此,当整数大于long2^31 -1

评论

0赞 NOhs 6/10/2018
Python 的答案已经过时了,请参阅:stackoverflow.com/questions/13795758/...
0赞 Martin Thoma 6/11/2018
@NOhs我很欣赏这个链接,但我的 Python 答案是关于“Python 2”的(我将 2 添加到部分标题中以使其更清晰)。所以我的答案并没有过时。(但不可否认,Python 2 是)
35赞 Mark Ransom 5/9/2013 #20

这里有一个记住 2**31 的助记符,减去 1 得到最大整数值。

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,这太容易了。

评论

3赞 supercat 5/11/2013
你对 2^10、2^11、2^12 或 2^17(它们都有零)做什么?
2赞 Mark Ransom 5/11/2013
@supercat 我要么将 a=0 变基,要么使用 o=0。
61赞 Mikołaj Rozwadowski 7/5/2013 #21

我是这样想起来的:2147483647

  • 214 - 因为 2.14 大约是 pi-1
  • 48 = 6*8
  • 64 = 8*8

水平写下这些:

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

现在你已经有了2147483647。

希望这至少会有所帮助。

评论

3赞 9/20/2013
好东西!我认为 214 规则应该是 pi - 1。此外,面具显示 68 而不是 64。=) 对于像我这样的航空爱好者来说,737 值应该很容易记住,将其与波音的中型客机联系起来。
0赞 Peter Cooper 10/10/2013
你可以走得更远。去掉小数点并比较 pi 和 2^31-1。在相同的位置,你得到 141 对 147,所以最后一位数字变成了 7。然后是 592 对 483,彼此相差一位数。而 643 与 647,又变成了 7 件事。
0赞 Moberg 2/18/2014
@PeterCooper 尽管如此,pi 的小数点以 1415926_5_35 开头(注意 5,而不是 4)
15赞 M.M 9/5/2014
我的助记词是取 4294967296(很容易记住)并除以 2
31赞 Aerospace 12/4/2013 #22

32 位,1 位用于符号,31 位信息:

2^31 - 1 = 2147483647

为什么是-1?
因为第一个是零,所以最大的是计数减去一

编辑 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

评论

0赞 Luciano 8/12/2015
@cantfindaname88:2^31 = 总组合数,因此它的范围从 0 到 (2^31 -1)。是的,第一个是 0。
6赞 juniperi 12/4/2013 #23

在 Objective-C(iOS 和 OSX)中,只需记住以下宏:

#define INT8_MAX         127
#define INT16_MAX        32767
#define INT32_MAX        2147483647
#define INT64_MAX        9223372036854775807LL

#define UINT8_MAX         255
#define UINT16_MAX        65535
#define UINT32_MAX        4294967295U
#define UINT64_MAX        18446744073709551615ULL
15赞 Mark Hurd 9/5/2014 #24

如果您碰巧熟记您的 ASCII 表,而不是:MaxInt
!GH6G = 21 47 48 36 47

评论

0赞 Mark Hurd 2/4/2016
当我写这个答案时,我不知道 GH6G 有这么多的 Google 点击率,现在我自己也用过这个 :-)
15赞 Leandro Bardelli 2/26/2015 #25

记住它的最佳规则是:
21(神奇的数字!
47 (记住它)
48 (连续!
36 (21 + 15,都是魔法!
47 再次

此外,记住 5 对比记住 10 位数字更容易。

21赞 Sнаđошƒаӽ 3/25/2015 #26

首先写出 47 两次,(你喜欢 Agent 47,对吧?),保留空格,如图所示(每个破折号是一个数字的插槽。前 2 个插槽,然后是 4 个插槽)

--47----47

认为你手里有(因为 12 = 一打)。将其乘以 ,即 47 号特工的第一个数字,然后将结果放在您已有的第一对的右侧12447

12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47

然后乘以(为了使 Agent 47 的数字的第二个数字,即 ,你需要 ),并将结果放在前 2 对的右侧,即最后一个对槽12377 - 4 = 3

12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs

最后,从最右边的数字(在本例中为 2)开始,从手上一一拖动数字,并将它们放在您获得的第一个空槽中

2-47483647 <-- after placing 2
2147483647 <-- after placing 1

你有它!对于负极限,您可以将其视为绝对值比正极限多 1。

练习几次,你就会掌握窍门!

9赞 Samuel 8/5/2015 #27

这就是我如何记住 2,147,483,647

到遥远的大草原区,擎天柱三人组六进制四十七月

2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
315赞 Diamantatos Paraskevas 10/27/2015 #28

如果您能记住整个 Pi 数字,那么您要查找的数字位于 Pi 十进制数字的 1,867,996,680 到 1,867,996,689 的位置

数字字符串2147483647出现在 Pi 的 1,867,996,680 十进制数字处。3.14......86181221809936452346214748364710527835665425671614...

来源:http://www.subidiom.com/pi/

评论

30赞 JqueryToAddNumbers 11/16/2015
你知道,当我开始阅读你的答案时,我期待一些实用的东西,比如第 20 位数字。
95赞 Alderath 1/13/2016
这看起来很酷。你还有另一个记忆规则要记住 1,867,996,680 吗?我发现很难记住从哪个索引开始查找......
10赞 SlySven 6/25/2016
"如果你能记住整个圆周率数字......”- 不,你不能,这是不合理的{可能在这个问答中可能有一两个帖子} 8-D
10赞 htd 9/7/2016
@Alderath 我通常记得它是 sqrt(2) 中的 10 位小数,从数字 380,630,713 开始......
2赞 Yair Halberstadt 12/14/2017
@Alderath:数字字符串 1867996680 出现在 2 的平方根的第 380,630,713 位十进制数字处。
5赞 soprof 1/27/2016 #29

记住这一点: 21 智商项目 47

它可以用任何手机板解码,或者你可以自己在纸上写下来。

为了记住“21 IQ ITEM 47”,我会选择“Hitman:Codename 47 有 21 个任务,每个任务都是 IQ ITEM 本身的”。

或者“我每天21:47洗牙,因为我智商高,不喜欢嘴里的东西”。

评论

0赞 mcExchange 10/28/2017
你说的是什么意思?de-encoded with any phone pad
28赞 Ivan Yurchenko 7/15/2017 #30

好吧,除了笑话之外,如果你真的在寻找一个有用的记忆规则,我总是用它来记住大数字。

您需要将您的号码分解为 3-4 位数字,并使用手机键盘上的投影直观地记住它们。在图片上显示更容易:

enter image description here

正如你所看到的,从现在开始,你只需要记住 3 个形状,其中 2 个看起来像俄罗斯方块 L,一个看起来像蜱虫。这绝对比记住一个 10 位数字容易得多。

当您需要回忆数字时,只需回忆形状,在手机键盘上想象/查看并将形状投影到其上即可。也许最初你必须看键盘,但经过一些练习,你会记住数字是从左上角到右下角的,所以你可以在脑海中简单地想象它。

只要确保你记住形状的方向和每个形状的位数(例如,2147483647示例中,我们有一个 4 位俄罗斯方块 L 和一个 3 位 L)。

您可以使用此技术轻松记住任何重要的数字(例如,我记得我的 16 位信用卡号等)。

评论

0赞 jskroch 10/20/2017
好主意!形状 1 给你 2147,形状 2 给你 483,形状 3 应该给你 647,但正如绘制的那样,它可以解释为 6547。我如何知道何时包含所有交叉的数字(如图 1 所示)与何时跳过某些数字(如图 3 所示)?您还必须记住这些形状分别编码 4、3 和 3 位数字。或者,您可以用从 6 到 4 的弧线而不是直线绘制形状 3。
0赞 Ivan Yurchenko 10/20/2017
@Squinch 嗯,特别是对于记住 int。最大值:这应该不是问题,因为你可能知道它大约有 20 亿,所以它有 10 个数字(这意味着如果第一个形状有 4 个数字,那么第二个和第三个形状相应地有 3 个)。但是,如果您想将这种方法用于任何数字,这是一个很好的观点。此外,有些数字很难以这种方式记住(即 1112 或其他东西)。另一方面,无论如何记住这样的数字应该不难。所以我想说这取决于你,如果你为此想出一些有趣的东西,请告诉我。:)
0赞 jskroch 10/20/2017
是的,我正在考虑使用这种方法来调用任意数字序列,但对于这个特定的 int。最大值,您的方法效果相当好。正如你所说,重复的数字是一个问题。事实上,任何重复的序列(如2323)都是一个问题。任何与自身交叉的序列(例如2058)都很难绘制。任何记忆技巧都需要你记住几条信息。哪种类型的信息最好留在您的脑海中是个人喜好。
1赞 nibarius 5/22/2018
这就是我记住密码和类似密码的方式,但突然间您需要在计算机上输入它并意识到小键盘是垂直翻转的。所以这有点挑战。
0赞 Bob Stein 6/7/2019
德克萨斯州达拉斯的某个人接到了很多奇怪的电话,却不知道你@IvanYurchenko罪魁祸首。