我总是记不住电话号码。我需要一个记忆规则。


当前回答

它是2147483647。最简单的记忆方法就是纹身。

其他回答

记住这是8梅森素数。

如果这太难了,它也是已知的四个双梅森质数中的第三个。

编辑每个评论请求:

欧几里得-欧拉定理指出,每个偶数完全数都具有2^(n−1)(2^n−1)的形式,其中2^n−1是质数。2^n−1形式的质数被称为梅森质数,并且要求n本身是质数。

我们知道INT32的长度当然是32位。根据对2的补码的普遍理解,有符号的INT32是32位- 1位。

为了求出具有给定位数的二进制数的大小,我们通常取2的n - 1次方,其中n等于位数。

因此,大小计算为2^(32 - 1)- 1 = 2^31 - 1。31是质数,如上所述,这种形式的质数是梅森质数。我们只要数一数就能证明它是八个这样的物体。要了解更多细节,请问欧拉,或者伯努利(他给他写信)。

见:https://books.google.ie/books?id=x7p4tCPPuXoC&printsec=frontcover&dq=9780883853283&hl=en&sa=X&ved=0ahUKEwilzbORuJLdAhUOiaYKHcsZD-EQ6AEIKTAA v = onepage&q = 9780883853283 f = false

如果你觉得以10为进制很难记住这个值,试试以2为进制: 1111111111111111111111111111111

它很容易记住。在十六进制中,1位是4位。因此,对于unsigned int,将0x和8 fs (0xffffffff)写入Python或Ruby shell中,以10为基数获得值。如果需要带符号的值,请记住最高位用作符号。所以你必须把它排除在外。您只需要记住,后面三位是1,第四位是0的数字等于7,所以将0x7fffffff写入Python或Ruby shell中。你也可以写0x100000000 - 1和0x80000000 - 1,如果这样更容易记住的话。

在路径上使用Groovy:

groovy -e " println Integer.MAX_VALUE "

(在Java上下文中,Groovy对于快速参考非常有用。)

它是231−1(32位,其中1位用于符号)。

如果你想要一个近似值,使用210 = 1024≈103,所以231≈2*109。如果您想手动计算一个精确的值,可以使用平方的求幂来得到232 = 2(25),然后除以2。你只需要平方5次就可以得到232:

2*2 = 4
4*4 = 16
16*16 = 256
256*256 = 25*25*100 + 2*250*6 + 36 = 62500 + 3000 + 36 = 65536
65536*65536 =65000*65000 + 2*65000*536 + 536*536 =  
4225000000 + 130000*536 + (250000 + 3600 + 36*36) =
4225000000 + 69680000 + 250000 + 3600 + 1296 =
4294967296

把这个除以2再减去1得到2147,483,647。如果你不需要所有的数字,只需要前三位有效数字,那么每一步平方的计算都很简单。