我总是记不住电话号码。我需要一个记忆规则。
当前回答
什么意思?应该很容易记住它是2^32。 如果你想要一个规则来记住这个数字的值,一个方便的经验法则是在二进制和十进制之间转换:
2^10 ~ 1000
这意味着2^20 ~ 1,000,000
2^30 ~ 10亿
2^31的两倍大约是20亿,2^32的两倍是40亿。
这是对任何二进制数进行粗略估计的一种简单方法。二进制中的10个0变成十进制中的3个0。
其他回答
首先写出两次47(你喜欢47号特工,对吧?),保持如图所示的空格(每个破折号是一个数字的槽位。先2个,然后4个)
--47----47
认为你手里有12个(因为12 =一打)。将其乘以4,47号特工号的第一位数字,即47,并将结果放在你已经拥有的第一对的右边
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
然后将12乘以3(为了得到47号特工的数字的第二个数字,即7,你需要7 - 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。
练习几次,你就会掌握窍门的!
32位,1位符号,31位信息
2^31 - 1 = 2147483647
为什么1 ? 因为第一个是0,所以最大的是count - 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
Int32意味着你有32位可用来存储你的数字。最高位是符号位,这表示数字是正还是负。所以正数和负数都有2^31位。
如果0是正数,则得到(前面提到过)的逻辑范围
+2147483647到-2147483648
如果你认为这太小了,请使用Int64:
+9223372036854775807 至 -9223372036854775808
你为什么要记住这个号码?在代码中使用?您应该始终使用Int32。MaxValue或Int32。因为这些是静态值(在.net核心中),因此使用起来比用代码创建一个新的int更快。
我的陈述:如果能记住这个数字。你这是在炫耀!
有趣的是,Int32。MaxValue拥有超过2,147,486,647个字符。
但话说回来,我们有代码完成,
所以我想我们真正需要记住的是Int3<period>M<enter>,这在visual studio中只有6个字符。
更新 出于某种原因,我被否决了。我能想到的唯一原因是他们没有理解我的第一句话。
“Int32。MaxValue最多需要14个字符来输入。 2147,486,647需要输入10或13个字符,这取决于是否使用逗号。
我能想到的最正确的答案是Int32.MaxValue。
推荐文章
- Java整数到字节数组
- 如何优雅地检查一个数字是否在一个范围内?
- 从整数列表中,求出最接近给定值的数
- 在python中将整数转换为二进制
- 如何将对象转换为int型
- Java如何处理整数下溢和溢出,如何检查它?
- 在Java和c#中,int和Integer的区别是什么?
- 是否有一种方法可以迭代一系列整数?
- 为什么整数除法产生一个浮点数而不是另一个整数?
- 在python中最安全的方法将浮点数转换为整数?
- 我如何工作围绕JavaScript的parseInt八进制行为?
- 将两个整数以唯一且确定的方式映射为一个整数
- 如何在Java中正确地比较两个整数?
- 将逗号分隔的字符串转换为整数数组?
- 将逗号分隔的字符串转换为整数数组?