我总是记不住电话号码。我需要一个记忆规则。
当前回答
大约是2.1 * 10^9。不需要知道确切的2^{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
你也可以用Java得到这个:
System.out.println(Integer.MAX_VALUE);
但是请记住,Java整数总是有符号的。
Python 2
Python有任意的精确整数。但在python2中,它们被映射为C整数。所以你可以这样做:
import sys
sys.maxint
>>> 2147483647
sys.maxint + 1
>>> 2147483648L
所以当整数大于2^31 -1时,Python会切换为long
其他回答
它有32位,因此可以存储2^32个不同的值。其中一半是负面的。
答案是2147,483,647
最低的是- 2,147,483,648。
(注意这里多了一个负数。)
不要把它看成一个大数字,试着把它分解,然后寻找相关的想法。例如:
斯诺克的最大击球次数为2次(最大击球次数为147次) 4年(48个月) 3年(36个月) 4年(48个月)
上述适用于最大的负数;正的是- 1。
也许上面的分类对你来说不会再令人难忘了(它并不令人兴奋!),但希望你能想出一些令人难忘的主意!
使用Java 9的REPL, jshell:
$ jshell
| Welcome to JShell -- Version 9-Debian
jshell> System.out.println(Integer.MAX_VALUE)
2147483647
max_signed_32_bit_num = 1 << 31 - 1; // alternatively ~(1 << 31)
编译器无论如何都应该优化它。
我更喜欢1 << 31 - 1
0x7fffffff因为你不需要计数fs
Unsigned (pow(2,31)) - 1,因为你不需要<math.h>
“如果一个巨大的整数没有被回忆起,你就回忆这个助记符。”
现在数数每个单词中的字母。
推荐文章
- 在Android上将字符串转换为整数
- 将整数转换为字符串,以逗号表示千
- 在每个列表元素上调用int()函数?
- Java整数到字节数组
- 如何优雅地检查一个数字是否在一个范围内?
- 从整数列表中,求出最接近给定值的数
- 在python中将整数转换为二进制
- 如何将对象转换为int型
- Java如何处理整数下溢和溢出,如何检查它?
- 在Java和c#中,int和Integer的区别是什么?
- 是否有一种方法可以迭代一系列整数?
- 为什么整数除法产生一个浮点数而不是另一个整数?
- 在python中最安全的方法将浮点数转换为整数?
- 我如何工作围绕JavaScript的parseInt八进制行为?
- 将两个整数以唯一且确定的方式映射为一个整数