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


当前回答

永远不要忘记任何类型的最大值:

如果它有32位,最大的可能值将是带有数字1的32位:

结果将是十进制的4294967295:

但是,由于也有负数的表示,4294967295除以2,得到2147483647。

因此,一个32位整数能够表示-2147483647到2147483647

其他回答

最简单的方法是查看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;
}
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 (signed int max)等于2^30(约10亿)乘以2^1(2)也就是20亿。2^32等于2^30 * 2^2,大约是40亿。这种近似方法甚至可以精确到2^64左右(误差增长到15%左右)。

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

方便的字对齐容量近似:

2^16 ~= 64千// uint16 2^32 ~= 40亿// uint32, IPv4, unixtime 2^64 ~= 16 quintillion(又名160亿billion或1600万trillion) // uint64, "bigint" 2^128 ~= 256quintillion quintillion(又名256trillion trillion万亿)// IPv6, GUID

我是这样记得的…… 在十六进制中,一个数字代表4位,所以4 * 8 = 32,所以最大有符号的32位整型是:

0xFFFFFFFF >> 1 # => 2147483647

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

你需要把你的数字分成3-4个数字,然后用手机键盘上的投影来直观地记住它们。更容易在图片上显示:

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

当你需要回忆数字的时候,回忆一下数字的形状,想象一下手机键盘上的形状,然后投射到键盘上。也许一开始你必须看着键盘,但经过一点练习,你就会记住数字是从左上到右下的,这样你就能在脑海中简单地想象它了。

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

你可以使用这个技巧轻松地记住任何重要的数字(例如,我记得我的16位信用卡号码等)。

最大负值(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