我总是记不住电话号码。我需要一个记忆规则。
当前回答
一般来说,你可以做一个简单的操作,它反映了Int32的本质,用1填充所有可用的位-这是你可以很容易地保存在你的内存中的东西。它在大多数语言中的工作方式基本相同,但我以Python为例:
max = 0
bits = [1] * 31 # Generate a "bit array" filled with 1's
for bit in bits:
max = (max << 1) | bit
# max is now 2147483647
对于unsigned Int32,将其设置为32而不是31个1。
但因为有一些更冒险的方法,我开始考虑公式,只是为了好玩…
公式1(如果没有给出运算符,则将数字连在一起)
a = 4 b = 8 巴/ a ab-1 接 ab-a-b ab-1
Python quickcheck
a = 4
b = 8
ab = int('%d%d' % (a, b))
ba = int('%d%d' % (b, a))
'%d%d%d%d%d' % (ba/a, ab-1, ab, ab-a-b, ab-1)
# gives '2147483647'
公式2
X = 48 x / 2 - 3 x - 1 x x * 3/4 x - 1
Python quickcheck
x = 48
'%d%d%d%d%d' % (x/2-3, x-1, x, x*3/4, x-1)
# gives '2147483647'
其他回答
好吧,除了笑话,如果你真的在寻找一个有用的记忆规则,有一个我经常用来记住大数字的规则。
你需要把你的数字分成3-4个数字,然后用手机键盘上的投影来直观地记住它们。更容易在图片上显示:
正如你所看到的,从现在开始你只需要记住3个形状,其中2个看起来像俄罗斯方块L,一个看起来像一个勾。这绝对比记忆一个10位数要容易得多。
当你需要回忆数字的时候,回忆一下数字的形状,想象一下手机键盘上的形状,然后投射到键盘上。也许一开始你必须看着键盘,但经过一点练习,你就会记住数字是从左上到右下的,这样你就能在脑海中简单地想象它了。
只要确保你记得形状的方向和每个形状中的数字数量(例如,在2147483647的例子中,我们有一个4位数的俄罗斯方块L和一个3位数的L)。
你可以使用这个技巧轻松地记住任何重要的数字(例如,我记得我的16位信用卡号码等)。
我能想到的最正确的答案是Int32.MaxValue。
我在c#中做了几个天才的方法,你可以在你的生产环境中利用:
public static int GetIntMaxValueGenius1()
{
int n = 0;
while (++n > 0) { }
return --n;
}
public static int GetIntMaxValueGenius2()
{
int n = 0;
try
{
while (true)
n = checked(n + 1);
}
catch { }
return n;
}
最简单的方法是查看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;
}
在C语言中,在#include <stdint.h>后使用INT32_MAX。 在c++中,在#include <cstdint>后使用INT32_MAX。
或INT_MAX平台特定的大小或UINT32_MAX或UINT_MAX unsigned int。参见http://www.cplusplus.com/reference/cstdint/和http://www.cplusplus.com/reference/climits/。
或运算符(int)。
推荐文章
- 在每个列表元素上调用int()函数?
- Java整数到字节数组
- 如何优雅地检查一个数字是否在一个范围内?
- 从整数列表中,求出最接近给定值的数
- 在python中将整数转换为二进制
- 如何将对象转换为int型
- Java如何处理整数下溢和溢出,如何检查它?
- 在Java和c#中,int和Integer的区别是什么?
- 是否有一种方法可以迭代一系列整数?
- 为什么整数除法产生一个浮点数而不是另一个整数?
- 在python中最安全的方法将浮点数转换为整数?
- 我如何工作围绕JavaScript的parseInt八进制行为?
- 将两个整数以唯一且确定的方式映射为一个整数
- 如何在Java中正确地比较两个整数?
- 将逗号分隔的字符串转换为整数数组?